Ubuntu 12.04 を使用して注釈付きのソースを表示しようとしています (Mac OSX を使用しても同じ問題が発生し$ valgrind --tool=callgrind ./myProgram
ます) 。$ kcachegrind
$ qcachegrind
C++ スクリプトは、 ( などを介して) ファイルmyProgram.cpp
内に存在する関数を呼び出します。私は次のようにコンパイルします:.hpp
#include "../include/myHeader.hpp"
myProgram.cpp
g++ -g -o myProgram myProgram.o -l<some third party lib>
そのサードパーティのライブラリの注釈付きソースを表示することは気にしません。
私が見たいのは 、関数 inmyHeader.hpp
と forの注釈付きソースですmyProgram.cpp
。
代わりに、呼び出されるすべての関数のリストを含む kcachegrind の Flat Profile ウィンドウが表示さmyHeader.hpp
れます。現在、kcachegrind は関数の場所を frommyHeader.hpp
としてレポートしますmyProgram
-これは奇妙です。最後に、フラット プロファイル ウィンドウから任意の関数を選択し、ソース コードを表示するように要求すると、次のメッセージが表示されます。
There is no source available for the following function
<name of the selected function>
This is because no debug information is present.
Recompile the source and redo the profile run.
The function is located in the ELF object:
<some location...>
私が試したこと:
myHeader.hpp
kcachegrind の GUI を使用して、ディレクトリ保持を Annotations リストに追加しました。-O0 を使用してコンパイルし、コンパイラの最適化を削除します