如何使gdb仅输出到文件

时间:2018-07-05 12:04:01

标签: c++ gdb sh tcsh

我不太喜欢unix / linux,我正在使用带有sh,tcsh外壳的rhat linux。 我想要做的是通过破坏类的对象的默认值来调试其生命周期,复制c-tor,d-tor和operator =;。移动操作没有由编译器或我定义。我中断了这些功能,并打印了几行,还打印了回溯

br /project/src/some_file.c:408
commands
silent
printf "<%p> D E F A U L T c-tor bt:\n", this
bt
cont
end

问题是此类的对象很多,所以有很多输出,没有什么可以帮助我禁用到终端的输出,所以我只想在文件中查看gdb输出,而不是在shell中查看。使用sh或tcsh是否可以实现? -我无法真正影响环境并使用其他调试器或外壳程序。我想禁用gdb的任何输出并将进程调试到shell的原因是因为我认为它会减慢gdb和调试进程的执行速度,这会破坏已调试应用程序的行为。 使用gdb 8.1。我尝试了gdb的日志记录选项,通过

重定向输出
 run > somefile

我试图像这样运行gdb

gdb -p 1000 -x breakpoint.txt     | tee somefile.txt

非常感谢!

1 个答案:

答案 0 :(得分:0)

此链接具有用于记录的各种选项

http://sourceware.org/gdb/onlinedocs/gdb/Logging-Output.html

简单的是

set logging file file

更改当前日志文件的名称。缺省日志文件是gdb.txt。

然后

set logging on

启用日志记录。