windbg:将命令输出到文本文件

54

如何将WinDbg命令的输出保存到文本文件中?

4个回答

61

使用 -logo 选项从命令行启动 WinDbg:

windbg.exe -logo logfile.txt

这将完成所有指定文件的日志记录。您可以在此处查找更多命令行选项的详细信息。

或者,如果您已经处于调试会话中,可以使用.logopen命令开始记录日志。有关此命令的更多信息,请参见此处

或者您可以在WinDbg GUI中单击编辑->打开/关闭日志文件。

有关日志文件的更多信息,请参见此处


32
您可以使用.logopen命令,记录您在windbg中输入和响应的所有命令,并使用.logclose将数据刷新到文件中。

16

如果您发现这种方法更容易,您也可以在WinDbg图形用户界面中执行此操作:“编辑>将窗口文本写入文件...”。


0

要将特定命令的输出发送到文件,请获取Tee(我使用Tee.bat),将其放入Windows PATH环境变量覆盖的目录中(或添加该目录)。然后从WinDbg GUI使用以下语法将命令的输出发送到文件

.shell -ci "<command>" tee <file>

.shell -ci "!gcroot 000002b56c414750" tee c:\path\out_01.log

有一个未记录的!!缩写形式的.shell。所以你可以这样做:

!! -ci "!gcroot 000002b56c414750" tee c:\path\out_01.log

背景

你可以在 WinDbg 图形界面中运行 shell 命令语法 如下:

.shell [Options] [ShellCommand] 
.shell -i InFile [-o OutFile [-e ErrFile]] [Options] ShellCommand

这里我找到了将命令输出发送到剪贴板的解决方案。

.shell -ci "<command>" clip

如果您可以将输出发送到clip,那么将其发送到文件中是否也是可能的呢?

.shell -ci "<command>" > <file>
.shell -ci "!gcroot 000002b56c414750" > c:\path\out_01.log

虽然这样做会很好,但它无法正常工作。在MS文档中,我找到了这个例子。

.shell -ci "!process 0 7" perl.exe parsemyoutput.pl

所以可以将输出发送到应用程序中。就像上面的例子使用clip一样。这就是Tee的作用。但是你也可以使用任何其他脚本或.exe将输出存储在文件或其他位置中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接