首先,我不能使用調試器[1]。但是我可以訪問程序的程序計數器,也可以編譯我需要的所有標誌的二進制文件(用C編寫)。我甚至可以更改代碼(儘管我不喜歡)。鑑於PC,我希望能夠知道它對應的是哪一行。只從程序計數器獲取代碼行信息?
我確定必須有一種自動,實用,快速的方法來做到這一點。但我沒有成功。
編輯:忘了提及:Linux系統,二進制文件是PPC,主機是i386。我有權訪問PPC硬件。
[1]應用程序正在仿真,並且它是交叉編譯的,我在主機模擬器中有一個gdb。但是我無法連接仿真來賓應用程序上的gdbserver。真正的硬件不是一種選擇,我試圖建立一個基於仿真器的模擬器。
如果使用調試信息編譯二進制文件,那麼可以通過摸索包含調試信息的ELF部分,使用PC在源代碼中找到正確的位置。雖然自動化,快速和實用並不是這個過程中需要考慮的術語,但! –
@JonathanLeffler爲什麼不做出答案? – Matt