1

我正在编写一个运行几个 WinDbg 命令的脚本,输出一些命令的输出,并使用 .foreach 解析其他命令。

我的问题是当我尝试运行时:

0: kd> dt -b -r 0xdeadbeef drivername!DRIVER_DEVICE_CONTEXT

输出看起来像这样:

   +0x000 variable1 : 5
   +0x004 variable2 : 0
   +0x008 variable3 : 1
   +0x00c variable4 : 1
   +0x010 variable5 : 8
   +0x014 variable6 : (null)
   +0x018 variable7 : 1
   +0x01c table1 :  ""
    [00] 0 ''
    [01] 0 ''
    [02] 0 ''
    [03] 0 ''

...

创建一个别名“命令”,即该命令,然后运行:

.foreach(word {command}) { .echo "word" }

将给出错误:

Syntax error at .echo """"

如果单词是“”,有什么办法可以 .continue 吗?

运行 al 显示以下内容:

  Alias            Value  
 -------          -------
 command          dt -b -r 0xdeadbeef drivername!DRIVER_DEVICE_CONTEXT
 word             ""
4

1 回答 1

1

尝试使用单引号:

.foreach(word {command}) { .echo 'word' }

我可以推荐你使用 python 和 windbg 吗?它会让你的生活更轻松:)

pykd.codeplex.com

如果它不喜欢你,你可以随时退货:)。

例如:

DRIVER_DEVICE_CONTEXT = typeInfo( "drivername!DRIVER_DEVICE_CONTEXT" )

for fieldName, fieldType in DRIVER_DEVICE_CONTEXT:
   print fieldName
于 2013-09-26T06:35:24.933 回答