Oracle® Solaris Studio 12.4: パフォーマンスアナライザ

印刷ビューの終了

更新: 2015 年 1 月
 
 

ロードオブジェクトと関数

各ロードオブジェクトには、それが実行可能ファイルか共有オブジェクトかにかかわらず、コンパイラによって生成された命令を含むテキストセクション、データ用のデータセクション、および各種のシンボルテーブルが含まれています。すべてのロードオブジェクトには、そのオブジェクト内に、グローバルに認識されているすべての関数の名前とアドレスを指定する ELF シンボルテーブルが含まれている必要があります。-g オプションでコンパイルされたロードオブジェクトには、追加のシンボリック情報が含まれています。この情報は ELF シンボルテーブルを補足するものであり、グローバルではない関数に関する情報、関数が属するオブジェクトモジュールに関する追加情報、およびアドレスをソース行に関連付ける行番号情報を提供します。

関数」という用語は、ソースコードで記述された高度な操作を表す一連の命令を表します。 この用語は、Fortran で使用されるサブルーチンや、C++ および Java プログラミング言語で使用されるメソッドなどもカバーしています。関数はソースコード内で明確に記述され、その名前は通常、アドレスセットを表すシンボルテーブルに表示されます。プログラムカウンタがそのセットに含まれている場合、プログラムはその関数内で実行されています。

原則として、ロードオブジェクトのテキストセグメント内のアドレスはすべて、関数にマップできます。関数ロードオブジェクト内のアドレス ロードオブジェクト関数のアドレス呼び出しスタック上のリーフ PC およびほかのすべての PC で、まったく同じマッピング情報が使用されます。関数の多くは、プログラムのソースモデルに直接対応します。以降のセクションでは、これに該当しない関数について説明します。