使用Valgrind进行GDB远程调试

6

如果我使用gdb进行远程调试,我会使用以下方式连接到gdbserver:

target remote host:2345

如果我使用valgrind和gdb来调试内存错误(以在无效内存访问时中断程序),我会使用以下命令:

target remote | vgdb

抱歉,您需要提供要翻译的完整内容才能进行翻译。
valgrind --track-origins=yes --vgdb=yes --vgdb-error=0 [binary]

在本地计算机上(即本地机器)进行调试,我能否将两者结合起来,以便在远程计算机上调试内存错误?

请注意,我希望避免在远程计算机上使用登录shell。

1个回答

7

我可以将两者结合起来在远程机器上调试内存错误吗?

可以:当前的vgdb自从这个提交以来就接受--port=参数:

r12204 | sewardj | 2011-10-22 13:38:08 -0700 (Sat, 22 Oct 2011) | 5 lines

运行vgdb --port=2345,然后像往常一样输入(gdb) target remote host:2345


现在我有时间尝试这个命令:(valgrind --track-origins=yes --vgdb=yes --vgdb-error=0 $opt_executable $opt_executable_args | tee $myprogramlog;) & sleep 5; vgdb --port=2345 我得到了这个结果: listening on port 2345 ...connected. relaying data between gdb and process 4853 然后是(gdb) target remote host:2345进程终止...所以我无法使用它进行调试,甚至无法运行它。有什么想法? - highsciguy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接