WinDbg脚本解析双引号的别名

时间:2013-09-25 17:35:56

标签: string parsing windbg

我正在编写一个运行几个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 ''

...

创建别名'command',即该命令,然后运行:

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

会给出错误:

Syntax error at .echo """"

有没有办法直接。如果word是“???

,继续

Running al显示以下内容:

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

1 个答案:

答案 0 :(得分: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