valgrind を使用して、できればテキスト ファイルで、C++ プログラムによって呼び出された関数の時系列ログを取得したいと考えています。
以下のサンプル C++ プログラム (simple.cpp) の場合:
void baz(){
}
void bar(){
for(int i = 0; i < 3; i++)
baz();
}
void foo(){
bar();
}
int main(){
foo();
return 0;
}
取得したい
main() -> foo()-> bar->baz()*3
私が試したこと:
としてコンパイルしg++ -g simple.cpp -o simple.out
て実行valgrind --tool=callgrind ./simple.out
し、取得しますcallgrind.out.3519
実行callgrind_annotate --tree=both callgrind.out.3519 | grep baz
しても何も返されません。
関数kcachegrind callgrind.out.3519
のソース コード ビュー内を移動するとmain()
、呼び出しが時系列で表示されます。
この情報だけをログに書き出す方法はありますか?