【发布时间】:2015-03-14 05:33:06
【问题描述】:
我想使用 windbg 将变量值写入文件。
例如,如果断点匹配,如何将$ip值写入文件?
【问题讨论】:
标签: windbg
我想使用 windbg 将变量值写入文件。
例如,如果断点匹配,如何将$ip值写入文件?
【问题讨论】:
标签: windbg
要读取该注册表值,请输入以下命令:
您可以使用 GUI 将窗口的内容写入文本:
编辑->将窗口文本写入文件'
或使用logopen
我的 windbg 会话中的完整命令示例如下所示:
0:392> r ip
ip=590
0:392> .logopen c:\data\ip.txt
Opened log file 'c:\data\ip.txt'
0:392> .echo ip register val:; r ip
ip register val:
ip=590
0:392> .logclose
Closing open log file c:\data\ip.txt
所以在这里我使用.logopen 打开一个日志文件,然后发出.echo 命令(实际上是可选的,但它允许您将输出写入一些cmets),然后使用r ip 显示$ip 寄存器值,最后关闭日志.logclose。
这会产生一个包含以下内容的日志:
Opened log file 'c:\data\ip.txt'
0:392> .echo ip register val:; r ip
ip register val:
ip=590
0:392> .logclose
Closing open log file c:\data\ip.txt
所以完整的东西应该是这样的:
bp myll!myfunc ".logopen c:\folder\ip.txt; .echo ip register value:; r ip; .logclose"
当然可以根据需要替换 bp 参数和日志位置。
正如 ThomasW 所指出的,这将在每次遇到断点时覆盖日志,因此如果不希望出现这种行为,请改用 .logappend
【讨论】:
.logopen 不会每次都覆盖文件吗?您可以将它与/t 开关一起使用来添加时间,或者改用.logappend。
.printf "%p\n",@ip;或类似的代替r ip。