valgrind 之callgrind

命令行

valgrind –tool=callgrind [callgrind options] your-program [program options]

通常可以用 –instr-atstart=no , 让valgrind开始介入,有这个参数可以让valgrind并不影响程序本身的运行。然后用

callgrind_control -i on

可以打开追踪

然后利用

callgrind -b  打印当前的函数调用堆栈

callgrind -s 打印当前的函数收集状态。

callgrind -z 将counter清零

callgrind –dump[=description]   dump当前的函数收集状态, description用来区分不同的dump. 因为你可能对一个进程dump多次。

对于已经dum生成的callgrind.out.21874.1(这个文件不是给人读的,需要利用callgrind_annotate来解释) ,可以利用

callgrind_annotate –tree=caller/calling/both 来生成函数之间的调用关系。

不过这个生成的文件是个纯文本文件,并不怎么好看。并且函数之间的调用关系并没有参数。不能算是忠实的记录了运行过程。



本文地址: http://www.bagualu.net/wordpress/archives/3307 转载请注明




发表评论

电子邮件地址不会被公开。 必填项已用*标注