如何在调试程序集时将内存地址转换为 VS2019 watch window 中的用户定义类型?

How can I cast a memory address to a user defined type in the VS2019 watch window when debugging assembly?

我正在尝试调试 exe 中的崩溃,我自己的代码位于 exe 正在加载的 dll 中。我在 exe 中只有一个程序集调用堆栈,并设法追溯到我自己的代码并找到我希望调试的我自己的对象的地址。

但是我似乎无法在手表中将内存地址转换为我自己的类型 window:我只是得到 'identifier "(my type)" is undefined'。

我猜想当我不在我自己的代码堆栈中时这是不可能的,但似乎调试器 可以 如果我可以的话以某种方式提供更多信息。

我尝试了一些自己的类型,但都给出了未定义的标识符。 我还查看了我的类型的导出符号,看看是否有我可以使用的东西(基于另一个 SO post 中的建议),但是我认为 pdb 本身包含我需要指向调试器的类型信息在

当然我的pdb是为我自己的dll加载的,但是watchwindow似乎不​​想在不相关的堆栈帧时查看它。

尝试指定您的 dll 的模块名称,例如 (yourDll.dll!mytype*)0x12345678

另见 https://docs.microsoft.com/en-us/visualstudio/debugger/context-operator-cpp?view=vs-2019