我运行valgrind并且它出现了我感兴趣的特定错误(其他是误报)。运行gdb时我想直接看到那个错误。我该怎么做?否则由于其他大量错误而需要很长时间。这是我感兴趣的无效错误,我可以抑制其他类型的错误,或者我可以指定行号或地址,我很乐意停止该程序吗?
还是我不得不艰难地去做?
我在Linux Mint 13上使用valgrind 3.9.0和GDB 7.4-2012.04。
答案 0 :(得分:0)
你可以指示valgrind跳过接下来的1000个错误:
(gdb) monitor v.set vgdb-error 1000
还要在您有兴趣测试内存错误的代码的开头设置一个断点。达到断点后,在继续之前将vgdb-error设置为0,并且gdb将在每次错误时再次停止。
显然你也可以给valgrind一个要抑制的错误列表,或者valgrind可以用来自动生成列表。见http://valgrind.org/docs/manual/manual-core.html#manual-core.suppress
请注意,海报正在讨论他正在使用valgrind的gdbserver和gdb调试程序的情况。这是一种用于向gdb会话添加内存错误检查的强大技术。见http://valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver