实时解析 WinDbg 输出并在特定输出行上设置触发器

parsing WinDbg output in real-time and setting a trigger on a specific line of output

有什么方法可以解析 WinDbg 的输出并在特定的输出行上设置 "trigger" 吗?我的意思是 - 当出现特定的输出行时执行一行 WinDbg 脚本/pykd 脚本。

我尝试使用 WinDbg 脚本来执行此操作,但没有成功。

如果你想使用OutputDebugString(), then have a look at .ocommand来控制调试器。

否则我不知道有什么东西可以直接达到你想要的。您可以编写一个永久 运行 并模拟命令提示符的 PyKD 脚本。然后,您可以使用 dbgCommand() 来执行命令并将结果作为字符串返回。将其转发到输出并对其进行分析,以便 运行 脚本。

使用 pykd,您可以尝试创建自己的事件处理程序:

class outputHandler(pykd.eventHandler):

     def onDebugOutput(self, str):
          if str == "something interesting":
              do_handler()

eh = outputHandler()

那么你应该运行你用'global'解释器编写脚本:

!py -g my_script.py

希望有用