有没有办法在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时还有其他方法可以执行脚本吗?
答案 0 :(得分:1)
如果想要记录所有已执行的命令及其结果。我认为你应该使用.logopen
此处只有一点是,在开始调试之前,必须先提及此命令。否则,将不会记录命令/结果。