用gdb调试没有源代码

时间:2014-10-20 09:19:58

标签: c++ gdb

我必须使用gdb调试程序。该程序使用gcc编译调试选项。 我的问题是源不在我用来调试和运行该程序的同一台机器上。我无法使用远程gdb调试。有没有办法在gdb中推进行/文件位置?这个问题还有其他解决方案吗?

由于

3 个答案:

答案 0 :(得分:1)

如果您遇到segmentation fault,可以通过启用它来在linux机器上使用核心转储

  

ulimit -c unlimited

然后将核心转储文件传输到您已获得源的另一台计算机,并使用coredump文件运行gdb,以确定代码中您获取分段错误的位置。

答案 1 :(得分:1)

您可以使用汇编代码对其进行调试。

objdump -d显示所有内容。然后在gdb函数处运行main,并在ni运行display $pc以运行下一条指令(程序集)。哦,不要忘记启用restore to C code会帮助你。

以上建议仅适用于玩具代码。

如果您已安装IDA(和插件),则可以使用其{{1}}功能。

答案 2 :(得分:0)

我在gdb中找到了info line命令,它显示了源文件中的位置,即使gdb没有找到源文件。这个解决方法对我来说似乎没问题。