添加pInvokeStackImbalance时,MDA配置文件无效

时间:2013-08-22 13:19:15

标签: .net debugging clr windbg

我正在尝试调试托管堆损坏问题,并尝试使用WinDbgMDAs来解决问题的根源。

但是,只要我将<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>

我已阅读this并确保我在元素名称和结束标记之间有空格,并按字母顺序排列元素。

我对pInvokeStackImbalance做错了什么?

1 个答案:

答案 0 :(得分:4)

问题的根源来自调试器登录消息:

  

Microsoft(R)Windows调试版6.2.9200.20512 AMD64

从MSDN Library文章中引用pInvokeStackImbalance:

  

pInvokeStackImbalance MDA仅适用于32位x86平台。

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