我正在使用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