gdb 将日志文件放在哪里?

gdb 将日志文件放在哪里?

这部分开始于为什么 gdb 不喜欢别名

现在我提出以下论点——

gdb firefox-esr
(gdb) set logging file my-firefox-esr-1802018.log
(gdb) set pagination 0
(gdb) show logging 
Future logs will be written to firefox-esr-020818.log.
Logs will be appended to the log file.
Output will be logged and displayed.
(gdb) run --safe-mode

当它崩溃时我做了-

(gdb) bt
(gdb) thread apply all bt

当它完成显示所有线程和其中的输出时,我将

(gdb) quit

但现在当我在 /home/shirish 时,我看不到该日志文件。我应该给出整个路径吗?

答案1

set logging file默认情况下, in指令gdb将写入当前目录。

firefox-esr因此,在您的示例中,如果所使用的用户对该目录具有写入权限,则日志文件将被写入所在目录。

所以答案是肯定的,要将日志文件写入您的主目录,您必须提供完整路径set logging file

gdb 回溯到文件一个有趣的技巧来完成你的操作:

别名 bt='echo 0 | gdb -batch-silent -ex“运行”-ex“设置日志覆盖”-ex“设置日志文件gdb.bt”-ex“设置日志记录”-ex“设置分页关闭”-ex“处理SIG33传递nostop noprint " -ex "echo backtrace:\n" -ex "backtrace full" -ex "echo \n\nregisters:\n" -ex "info registers" -ex "echo \n\n当前指令:\n" -ex " x/16i \$pc" -ex "echo \n\n线程回溯:\n" -ex "线程应用所有回溯" -ex "设置注销" -ex "退出" --args'

bt $crashing_application

也可以看看使用 Gentoo 进行回溯

答案2

gdb 不会始终在 pwd 中创建 gdb.txt 或自定义日志文件文件。必须通过在 gdb 终端中执行命令“setloggingon”来显式指定它。只有这样输出才会被记录。

相关内容