在WinDbg中使用.ForEach时出错

时间:2011-08-02 08:22:41

标签: windbg

为什么在调试转储文件时在WinDbg中运行以下命令时会得到Invalid parameter poi(adr+4)

.foreach ( adr { !dumpheap -mt 66df13d4 -short } ) { !do poi(adr+4); }

以下显示adr的值已经填充得很好。

.foreach ( adr { !dumpheap -mt 66df13d4 -short } ) { .echo adr; }

我想获取存储在System.Web.Caching.CacheEntry对象的第4个偏移处的.NET字符串变量的内容。

1 个答案:

答案 0 :(得分:5)

您需要在adr周围留出空格或使用${adr}。这在MSDN

中有记录
  

注意当字符串 Variable 出现在 OutCommands 中时,它必须是   被空间包围。如果它与任何其他文本相邻 - 甚至是   括号 - 它不会被当前的标记值替换,   除非您使用${ } (Alias Interpreter)令牌。