我想使用windbg将变量值写入文件。
例如,如果断点匹配,如何将$ip
值写入文件?
答案 0 :(得分:4)
要读取该注册表值,请输入命令:
您可以使用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
命令(可选,但它允许你写输出一些注释),然后显示$ip
寄存器值使用r 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 params和log location。
正如ThomasW指出的那样,每次遇到断点时都会覆盖日志,因此如果不希望出现这种情况,请改用<{3}}