我试图在Windbg脚本中枚举对象列表并执行操作。
所以我得到了Directory对象,然后我对该目录中的每个对象做了一个foreach。
.foreach /pS 19 /ps 1 (Address {!object @$t7}) {!object Address}
问题是“地址”并不总是地址令牌。我需要跳过非数字标记。我不能使用/ ps,不跳过一些有效的地址并搞砸令牌。
我尝试了类似的东西 .if($ spat(地址,“ - ”))!= 1 { }
但这不起作用。
在将变量实际传递给OutCommand之前,我是否可以对变量“地址”执行操作?
感谢。
答案 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 这很简单!!!