在Windbg中操作.foreach循环中的变量

时间:2013-09-17 12:30:36

标签: windbg

我试图在Windbg脚本中枚举对象列表并执行操作。

所以我得到了Directory对象,然后我对该目录中的每个对象做了一个foreach。

.foreach /pS 19 /ps 1 (Address {!object @$t7}) {!object Address}

问题是“地址”并不总是地址令牌。我需要跳过非数字标记。我不能使用/ ps,不跳过一些有效的地址并搞砸令牌。

我尝试了类似的东西     .if($ spat(地址,“ - ”))!= 1     {     }

但这不起作用。

在将变量实际传递给OutCommand之前,我是否可以对变量“地址”执行操作?

感谢。

2 个答案:

答案 0 :(得分:2)

我尝试.if ($spat(Address, "-")) != 1 { }

之类的东西

这应该可行,但您的语法略有不正确。你需要这样的东西:

.if ( $spat( "Address","[0-f][0-f][0-f][0-f][0-f][0-f][0-f][0-f]" ) )
{
    some code;
};

这将匹配地址。有关匹配的详细信息,请参阅windbg帮助中的字符串通配符语法页面。

答案 1 :(得分:0)

尝试将python与windbg一起使用(https://pykd.codeplex.com) 这是一个使用windows对象管理器的示例: https://pykd.codeplex.com/SourceControl/latest#branch/0.2.x/samples/km/drvobj.py 这很简单!!!