3

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

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

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

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

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

但这没有用。

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

谢谢。

4

2 回答 2

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 帮助中的字符串通配符语法页面。

于 2013-09-17T13:24:03.960 回答
0

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

于 2013-09-18T05:43:22.873 回答