2014-10-20 212 views
-2

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

感谢

+0

很明显,没有任何研究可以解决你自己的问题,只需要几分钟的时间就可以问这个问题! – cybermonkey 2014-10-20 11:02:31

回答

0

我发现在gdb命令info line这表明在源文件中的位置,即使GDB没有找到源文件。这种解决方法对我来说似乎很好。

0

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

的ulimit -c无限

那么核心转储文件传输到另一台机器,你已经获得源代码并运行gdb和coredump文件,以确定代码中哪里出现了分段错误。

0

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

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

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

如果您已经安装了IDA(和插件),你可以使用它restore to C code功能。