Я получал много катастрофических отказов segv в оболочке гнома и хотя по левую сторону судна окно имеет много информации, это не очень удобно для пользователя (окно является действительно маленьким, никакой способ искать, никакой способ сохранить копию к текстовому файлу и т.д.).
Существует ли способ, которому я могу получить доступ к информации, доступной по левую сторону судна непосредственно от терминала? Оболочка гнома сохраняет журналы traceback где-нибудь?
Я знаю, что существует файл журнала для по левую сторону судна в/var/log, но что файл журнала не предлагает почти того же уровня детализации.
Можно найти файлы в /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);
}
Вышеупомянутая программа была записана Eliah Kagan. Я скомпилировал его в исполняемый названный двоичный файл crash
в том же каталоге (использующий команду gcc -ansi -pedantic -Wall -Wextra -o crash crash.c
). Эта программа надежно segfaults :)
Bash самостоятельно не откажет, когда я запущу эту программу, таким образом, Apport не будет жаловаться, но по интересным причинам, обсужденным в большой длине в этом чате, 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.