早上好,我正在尝试使用Valgrind调试器来完成一个程序.
我的valgrind命令行是 valgrind -tool memcheck --leak-check=full --db-enable=yes ./MatchUpAcurate.exe.
我在Centos Linux 5.5版上使用valgrind-3.5.0和gdb版本7,0.1-23.el5_5.2.
当valgrind提出问题Attach to Debugger时,我输入Yes.然后,valgrind调试器返回:4428: return new tuple2<int,A>(2, i++, p->next());
当我尝试使用gdb步骤或继续命令时,valgrind说
[New Thread 0x410fd10 (LWP 6548] Cannot find user-level thread for LWP 6551: generic error.
当我尝试valgrind --single-step=yes在valgrind命令行上使用调试器选项时,valgriind说Bad option aborting.
任何valgrind用户都能告诉我如何单步执行C++源代码或继续完成程序吗?谢谢.
Fra*_*ank 13
我问valgrind开发人员如何创建valgrind调试器.这是他们所说的;
从valgrind网站下载3.6.0源文件.
然后你必须应用错误214909中的补丁.
正确编译后,您可以像这样启动应用程序:
valgrind --vgdb=yes --vgdb-error=0 ./prog
Run Code Online (Sandbox Code Playgroud)
然后在另一个窗口中:
gdb ./prog
target remote | vgdb
Run Code Online (Sandbox Code Playgroud)不要启动外部gdbserver:补丁的作用是在valgrind中集成gdbserver.这个集成在valgrind中的gdbserver由--vgdb = yes激活.
Use*_*abc 11
您还可以在3.7.0版本中获取vgdb.从发行说明:
valgrind在线手册中有更多信息.