0

我正在使用 WinDbg (Native x64 -- NOT Itanium) 来调试一个 x64 (非托管) 应用程序,该应用程序加载了两个托管的非托管 DLL。

我正在尝试在其中一个非托管 DLL 中设置断点。当断点被击中并且我单步执行时,显示的指令与它们应有的完全不同。我用两个不同的反汇编程序验证了 WinDbg 在我逐步执行时没有显示正确的反汇编。

附加到应用程序时,我得到这样的一行:

ModLoad: 00000000`XXXXXXXX 00000000`YYYYYYYY  C:\MyDLL.DLL

我调整了两个反汇编程序中的地址以反映基地址 XXXXXXXXX。

可能是什么问题呢?

4

2 回答 2

0

Does uf modname!FuncName return the correct results? You can sometimes trick WinDbg if you unassemble / breakpoint at weird places. Remember, that x86/x64 is a variable-width instruction set, so if you start reading halfway through an instruction, the disassembler gets confused.

于 2009-12-21T20:47:31.553 回答
0

在某处我注意到这可能与您的 DLL 中不正确的入口点有关。但我不知道如何处理这些信息(我是初学者)。

于 2010-01-18T09:55:36.450 回答