このページを編集する際は、解読日記一覧の「概要」に従ってください。
関数ereport()から下位関数errstart()が呼び出されている。
しかし、関数errstart()をソース全体からgrepすると、elog.c と ipc_test.c の2つのファイルで定義が見付かる。
通常は、以下の青の領域のソースファイルがコンパイル・リンクされ、矢印の流れで関数が呼び出されると想像される。
一方、ipc_testをビルドした場合、errstart()がipc_test.c内で定義されているので、以下のオレンジの領域のソースファイルがコンパイル・リンクされ、できたバイナリを実行すると矢印の流れで関数が呼び出されると考えられる。
同じ ereport() を使用していても、 elog.c と ipc_test.c のどちらをリンクしているかで、動作が異なり、リンク方法によって、ereport()の概要が異なってくることがわかる。
現在は、ipc_testバイナリについて読解しているので、errstart()/postgresql-8.1.4の概要に、以下のような説明を付記することにする。
また、上位関数ereport()/postgresql-8.1.4内でのコメントでは、以下のように記載することにする。