我正在使用WinDbg(Native x64 - NOT Itanium)来调试加载托管非托管DLL的x64(非托管)应用程序。
我正在尝试在其中一个非托管DLL中设置断点。当断点被击中并且我单步执行时,显示的指令与它们应该完全不同。我用两个不同的反汇编程序验证了WinDbg在我单步执行时没有显示正确的反汇编。
当附加到应用程序时,我得到这样一行:
ModLoad: 00000000`XXXXXXXX 00000000`YYYYYYYY C:\MyDLL.DLL
我调整了两个反汇编程序中的地址以反映基地址XXXXXXXX。
可能是什么问题?
答案 0 :(得分:0)
uf modname!FuncName是否返回正确的结果?如果你在奇怪的地方拆卸/断点,你有时可以欺骗WinDbg。请记住,x86 / x64是一个可变宽度的指令集,所以如果你开始读取指令的中途,反汇编程序会感到困惑。
答案 1 :(得分:0)
某处我注意到这可能与您的DLL中的不正确入口点有关。但我不知道如何处理这些信息(我是初学者)。