jjzjj

windows - 编写自己的 "mixed mode"调试器时如何与 Visual Studio native 调试器交互?

过去几天我一直在谷歌、博客和MSDN上搜索有关如何在VisualStudio中实现“互操作”或“混合模式”调试的任何小信息。我正在尝试为自定义VM实现我自己的调试器(实际上,它将JIT编译为native代码,这意味着只要正常native调试器输入JIT代码,我就必须为它重建调用堆栈),但我找不到任何关于如何实际与VS的native调试器交互并执行花哨的“native/托管”的信息,例如VS的混合模式调试所实现的转换。到目前为止,我发现了一些可以提供有用花絮的东西,但还不足以真正与调试器交互。我发现的最好、最有用的文章是:MikeStall的各种博客文章(主要是thesetwo)虽然提供

windows - 实现 DebugExtensionProvideValue 会破坏 WinDbg 内部状态?

我正在实现DebugExtensionProvideValue在我的扩展中,这样我就可以提供自定义伪寄存器。它在CDB中完美运行,最初在WinDbg中运行良好,但在停止调试并打开一个新的可执行文件后,发生了一些事情,WinDbg最终处于一种奇怪的不可用状态。当您触发问题时,WinDbg将此消息打印到命令窗口:Unabletodelivercallback,3131发生这种情况后,WinDbg似乎会在命令窗口中打印两次所有输出!我的扩展代码很简单:EXTERN_CHRESULTCALLBACKDebugExtensionProvideValue(PDEBUG_CLIENTClient,U