2016-10-10 163 views
1

我有一个.dmp为一个池泄漏的情况下,我确定了导致问​​题的标签,但有很多模块为该标签加载。我试图在WinDBG中使用eb脚本编辑模块名称,以便我可以识别哪个是哪个。我在这个语句上试过了一堆不同的东西,我不能完全按照我希望的那样来遍历所有与池标记相关的模块,并用一个数字替换标记的最后一个字母来重命名它们。.foreach语句中的语法错误

.block {r @$t0=0x31; !for_each_module .foreach(obj {s -[1]a @#Base @#End "FMfn"}){r @$t0 = @$t0+1; eb ${obj}+3 @$t0}} 

这是最新的错误我收到

@$t0+1' 
                    ^Syntax error in '.foreach(obj {s -[1]a fffff96000925000 fffff9600095f000 "FMfn"}){r @$t0 = @$t0+1' 
Couldn't resolve error at '${obj}+3 $t0}' 

谁能帮我找出我要去哪里错了吗?

回答

2

根据文档,!for_each_module需要各地的命令字符串引号:

!for_each_module ["CommandString"] 

,并根据我的测试,他们似乎并没有是可选的,所以加了引号和逃避这样的现有引号:

.block {r @$t0=0x31; !for_each_module ".foreach(obj {s -[1]a @#Base @#End \"FMfn\"}){r @$t0 = @$t0+1; eb ${obj}+3 @$t0}"}