私はLinux環境に取り組んでいます。2つの「C」ソースパッケージtrainとtest_trainがあります。
- コンパイル時にtrainパッケージはlibtrain.soを生成します
- test_trainはlibtrain.soにリンクし、実行可能なtrain-testを生成します
ここで、gprofを使用してコールグラフを生成します。これは、メインプログラムとlibtrain.so内の関数の呼び出しシーケンスを示しています。
両方のパッケージを-pgオプションでコンパイルおよびリンクしており、デバッグレベルはo0です。./train-testを実行すると、gmon.outが生成されます。それから私はします:
$ gprof -q ./train-test gmon.out
ここで、出力は、train-testの関数のコールグラフを示していますが、libtrain.soにはありません。
何が問題なのか?