实时解析 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
希望有用
有什么方法可以解析 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
希望有用