2014-10-20 209 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功能。