提交崩溃报告后,我可以在哪里获取 apport 回溯信息

提交崩溃报告后,我可以在哪里获取 apport 回溯信息

我在 gnome-shell 中遇到过很多 segv 崩溃,尽管 apport 窗口有很多信息,但它不是很用户友好(窗口真的很小,无法搜索,无法将副本保存到文本文件等)。

有没有办法让我直接从终端访问可用的信息?gnome-shell 是否将回溯日志保存在某处?

我知道 /var/log 中有一个 apport 的日志文件,但是该日志文件提供的详细程度几乎不一样。

答案1

您可以在 中找到这些文件/var/crash。这几乎就是您问题的全部答案,因此为了让我的回答更有趣,我将向您展示我是如何知道这一点的,这可能会引起其他想要测试崩溃行为的人的兴趣。

$ cat ~/playground/crash.c
/* crash.c - simple program that crashes by raising a segmentation fault */

#include <signal.h>

int main(void)
{
        raise(SIGSEGV);
}

上述程序由伊莱亚·卡根。我已将其编译为可执行二进制文件,位于crash同一目录中(使用命令gcc -ansi -pedantic -Wall -Wextra -o crash crash.c)。此程序可靠地出现段错误 :)

当我运行这个程序时,Bash 本身不会崩溃,所以 Apport 不会抱怨,但出于有趣的原因在这次聊天中详细讨论,当我使用 ksh 调用崩溃的程序时,ksh 本身也会崩溃,并且 Apport 会为其创建报​​告。让我们尝试一下!

zanna@toaster:/var/crash$ ksh93
$ /home/zanna/playground/crash
Memory fault(coredump)
$ exit
Segmentation fault (core dumped)
zanna@toaster:/var/crash$ ls
_bin_ksh93.1000.crash
zanna@toaster:/var/crash$ file _bin_ksh93.1000.crash 
_bin_ksh93.1000.crash: ASCII text, with very long lines

就这样。

在您制作报告后,您将在这里获得另外 2 个文件,一个以 结尾.upload,一个以 结尾.uploaded,它们可能更易读,也可能不更易读,但无论如何,都包含 Apport 发送的信息。

相关内容