valgrind II
今天又花了点时间研究valgrind,发现昨天有句话写的不是准确,valgrind不仅通过虚拟方式,它也使用了插装来帮助代码检查,当然插装是在汇编指令上做的,而且valgrind的插装是可以通过写插件的方式来扩展,这样就成就了一个valgrind支持多个tool。插件是通过c写的,看了一下代码,有点复杂,还需要了解valgrind虚拟机的指令集。不过这还是让我对valgrind更加高看,体系架构独一无二,作为2004 Open Source Award得主看来是有两把刷子的。
一个额外的发现:valgrind 缺省情况下在检测到错误时,只是报错,而没有启动gdb,这在有些时候不太方便定位,可以使用命令行参数,让valgrind在检测到错误时,提示是否启动gdb,象这个样子即可:
valgrind --db-attach=yes prog
这里有英文的信息 http://www.amule.org/wiki/index.php/Using_gdb_and_valgrind
一个额外的发现:valgrind 缺省情况下在检测到错误时,只是报错,而没有启动gdb,这在有些时候不太方便定位,可以使用命令行参数,让valgrind在检测到错误时,提示是否启动gdb,象这个样子即可:
valgrind --db-attach=yes prog
这里有英文的信息 http://www.amule.org/wiki/index.php/Using_gdb_and_valgrind

0 Comments:
发表评论
<< Home