1

我正在尝试调试托管堆损坏问题,并已诉诸使用WinDbg并查明问题MDAs的根源。

但是,一旦我添加<pInvokeStackImbalance />到 *.mda.config 文件,我就会收到错误The 'mdaConfig' configuration file is invalid.即使我自己使用也会发生这种情况pInvokeStackImbalance

<mdaConfig>
  <assistants>
    <pInvokeStackImbalance />
  </assistants>
</mdaConfig>

WinDbg 输出:

Microsoft (R) Windows Debugger Version 6.2.9200.20512 AMD64
...
<mda:msg xmlns:mda="http://schemas.microsoft.com/CLR/2004/10/mda">
  <!-- 
       The 'mdaConfig' configuration file is invalid.
   -->
  <mda:invalidConfigFileMsg break="true" configFile="mdaConfig"/>
</mda:msg>

其他 mda 助手似乎工作正常,例如

<mdaConfig>
   <assistants>
      <callbackOnCollectedDelegate listSize="1500" />
      <gcManagedToUnmanaged />
      <gcUnmanagedToManaged />
   </assistants>
</mdaConfig>

我已通读内容并确保在元素名称和结束标记之间有一个空格,并按字母顺序排列了元素。

我做错了pInvokeStackImbalance什么?

4

1 回答 1

4

从调试器登录消息中可以明显看出问题的根源:

Microsoft (R) Windows 调试器版本 6.2.9200.20512 AMD64

从 MSDN Library 文章中引用 pInvokeStackImbalance :

pInvokeStackImbalance MDA 仅针对 32 位 x86 平台实现。

换句话说:您不能使用它来调试 64 位进程。

于 2013-08-22T14:17:52.113 回答