1

Google パフォーマンス ツールがファイルを "??:?" としてリストするのを避ける方法はありますか? 呼び出されている関数がどのライブラリに含まれているかを調べるにはどうすればよいですか?

$ env LD_PRELOAD="/usr/lib/libprofiler.so.0" \
   CPUPROFILE=output.prof python script.py
$ google-pprof --text --files /usr/bin/python output.prof 
Using local file /usr/bin/python.
Using local file output.prof.
Removing _L_unlock_13 from all stack traces.
Total: 433 samples
 362  83.6%  83.6%      362  83.6% dtrsm_ ??:?
  58  13.4%  97.0%       58  13.4% dgemm_ ??:?
   1   0.2%  97.2%        1   0.2% PyDict_GetItem /.../Objects/dictobject.c
   1   0.2%  97.5%        1   0.2% PyParser_AddToken /.../Parser/parser.c
...

多くのコンパイル済み C 拡張モジュールを含む python パッケージで C コードをプロファイリングできるようにすることを目指しています。上記のおもちゃの例で、「dtrsm_」が定義されている場所を突き止めるにはどうすればよいでしょうか? 同じ名前の関数を含む複数のロード済みライブラリがある場合、どのバージョンが呼び出されているかを知る方法はありますか?

4

2 に答える 2