我正在使用WinDbg(Native x64-NOT Itanium)來調試加載託管的非託管dll的x64(非託管)應用程序。WinDbg - 調試混合x64託管/非託管代碼
我想在一個非託管dll中設置斷點。當斷點被擊中並且我逐步完成時,顯示的指令與它們應該完全不同。我使用兩個不同的反彙編程序驗證了WinDbg在我逐步完成時沒有顯示正確的反彙編。
當連接到應用程序中,我得到這樣一行:
ModLoad: 00000000`XXXXXXXX 00000000`YYYYYYYY C:\MyDLL.DLL
我調整了兩個反彙編的地址以反映基地址XXXXXXXX。
可能是什麼問題?
我發現這(從未完全回答): http://stackoverflow.com/questions/1398826/vs2008-on-win7-64-bit-debugging-a-windows-service 或許這可以幫助? – devviedev 2009-12-22 00:09:22
拆卸一般意義嗎?我一般會優先選擇windbg,因爲它使用有效的IP進行解碼,而不是單純依靠靜態分析(反彙編可能是好的),而是在有效的過程中有效。你能透露一些彙編代碼來比較嗎? – deemok 2009-12-22 14:23:09
這是「調用someFunc」與「mov ebx,esp」。即使踩在其他點也不匹配。在哪個斷點被擊中似乎不一致;我設置了應該被擊中但不是的斷點。 – devviedev 2009-12-22 18:08:41