退出WinDbg之前执行命令

时间:2014-01-08 07:48:41

标签: windbg

有没有办法在WinDbg退出之前执行命令?

特别是我想做一个.write_cmd_hist <filename>来保存我在调试会话期间使用的所有命令,以便我可以更容易地记住我做了什么,以防有人问我如何进行分析。

方法1

我尝试重新定义q命令,但以下操作不起作用,当然只有在菜单没有关闭WinDbg时它才会起作用:

aS q ".write_cmd_hist c:\hist.txt; q"尝试再次替换q

执行aS q ".write_cmd_hist c:\hist.txt; qq"时,

q会出现语法错误。反斜杠迷失了。

执行aS q ".write_cmd_hist c:\\hist.txt; qq"时,

q会出现语法错误。

aS q ".block{.write_cmd_hist c:\hist.txt; qq}"反斜杠丢失了

执行aS q ".block{.write_cmd_hist c:\\hist.txt; qq}"时,

q会出现语法错误。

aS q ".block{.write_cmd_hist "c:\\hist.txt"; qq}"格式错误的字符串

aS q ".block{.write_cmd_hist \"c:\\hist.txt\"; qq}"给出了语法错误。 .write_cmd_hist不喜欢引号。

执行aS q ".block{.block{.write_cmd_hist c:\\hist.txt};qq}"时,

q会出现语法错误。

更新

好像是.write_cmd_hist cannot be used in aliases(MSDN)和cannot be used in scripts(MSDN)。这也适用于该文章中提到的其他命令,例如

aS ccc .cls

现在执行ccc时,它还会显示语法错误。

退出WinDbg时还有其他方法可以执行脚本吗?

1 个答案:

答案 0 :(得分:1)

如果想要记录所有已执行的命令及其结果。我认为你应该使用.logopen

此处只有一点是,在开始调试之前,必须先提及此命令。否则,将不会记录命令/结果。