pyt*_*hor 98 printing redirect gdb
我正在运行gdb并想要检查其中一个不幸的上帝对象.它需要很多页面(而且我有一个24英寸的显示器转向侧面!)看到整个事情.为了便于使用,我希望gdb将对象打印到文件而不是屏幕,以便我可以打开它vi并轻松移动.有了所有gdb的多功能性,必须有办法做到这一点,对吧?
Tad*_*ski 144
您需要启用日志记录.
(gdb) set logging on
Run Code Online (Sandbox Code Playgroud)
您可以告诉它使用哪个文件.
(gdb) set logging file my_god_object.log
Run Code Online (Sandbox Code Playgroud)
您可以检查当前的日志记录配置.
(gdb) show logging
Run Code Online (Sandbox Code Playgroud)
Luc*_*hez 13
我发现你可以通过run命令将gdb的输出重定向到文件:
(gdb) run > outfile
Run Code Online (Sandbox Code Playgroud)
use*_*610 10
延伸@ qubodup的答案
gdb core.3599 -ex bt -ex quit |& tee backtrace.log
Run Code Online (Sandbox Code Playgroud)
的-ex开关运行GDB命令.所以上面加载核心文件,运行bt命令,然后quit命令.输出被写入backtrace.log屏幕并且也被写入屏幕.
另一个有用的gdb调用(给出来自所有线程的局部变量的栈跟踪)是
gdb core.3599 -ex 'thread apply all bt full' -ex quit
Run Code Online (Sandbox Code Playgroud)
将 gdb 记录到文件同时仍能看到输出(这简化了编写命令)的一种简单方法是使用tee:
gdb command |& tee gdb.log
Run Code Online (Sandbox Code Playgroud)
从https://sourceware.org/gdb/onlinedocs/gdb/Logging-Output.html:
您可能需要将gdb命令的输出保存到文件中。有几个命令可以控制gdb的日志记录。
Run Code Online (Sandbox Code Playgroud)set logging on启用日志记录。
Run Code Online (Sandbox Code Playgroud)set logging off禁用日志记录。
Run Code Online (Sandbox Code Playgroud)set logging file file更改当前日志文件的名称。缺省日志文件是gdb.txt。
Run Code Online (Sandbox Code Playgroud)set logging overwrite [on|off]默认情况下,gdb将追加到日志文件。如果要设置登录以覆盖日志文件,则设置覆盖。
Run Code Online (Sandbox Code Playgroud)set logging redirect [on|off]默认情况下,gdb输出将同时到达终端和日志文件。如果只希望输出到日志文件,请设置重定向。
Run Code Online (Sandbox Code Playgroud)show logging显示日志记录设置的当前值。
| 归档时间: |
|
| 查看次数: |
70907 次 |
| 最近记录: |