Ответы:
Зависит от приложения. Различные приложения имеют разные системы регистрации; нет единого центрального журнала, который бы содержал весь вывод всех программ, работающих в вашей системе.
При этом многие программы помещают свои файлы журналов в каталог /var/log
. В частности, файл /var/log/syslog
(или, возможно, /var/log/messages
) содержит выходные данные «системного регистратора», который представляет собой службу, предоставляемую системой, которую программы могут использовать (если они захотят) для ведения журнала. Но не все программы используют его. В основном в этом файле вы найдете сообщения от низкоуровневых системных служб, а не графические приложения, которые вы обычно используете.
Вы можете прочитать больше о расположении стандартных файлов журнала .
аварийные файлы /var/log/crashes/
используются в apport для сообщения об ошибках. Вы можете извлечь дамп ядра apport-unpack
, поместить этот дамп через gdb и выяснить, что вызывает сбой программы.
Это все, если вы программист. Если вы не ... ну, вы все равно не можете исправить аварию!
bt full
"о бэк-след ... с отсутствующими символами ... думаю, мне нужно установить символы отладки и попытаться воспроизвести сбой ..." Я однажды понял, как установить точка останова ... это самое продвинутое, что я получил с этим все же.
Некоторые приложения имеют флаги, которые можно использовать для включения отладки, такие как -d, -D, --debug и т. Д. Проверьте man-страницу приложения ( man [my-app]
) или запустите приложение с флагом -h, чтобы увидеть, есть ли у него такой вариант.
Многие приложения с графическим интерфейсом записывают в $ HOME / .xsession-errors, так что это хорошее место для проверки вывода.
Мако прав, что apport, вероятно, самый надежный способ получить хорошую отладочную информацию. Иногда это не захватывает крах, все же.
Если все остальное терпит неудачу, вы также можете принудительно вытолкнуть информацию, запустив приложение в gdb. Это было бы что-то вроде:
$ gdb my-app
(gdb) run
... сделать все необходимое, чтобы он потерпел крах ...
(gdb) bt full
и идти оттуда.
Если вы идете по маршруту GDB, вы также хотите установить символы, как упоминалось ранее. См. Https://wiki.ubuntu.com/DebuggingProgramCrash для получения рекомендаций о ручной фиксации.
Если вы запускаете приложение из файла запуска .desktop, добавьте этот параметр Terminal=true
в свой файл .desktop. Это откроет терминал, когда вы запустите программу, вывод на терминал будет аналогичен тому, что вы увидели бы, если бы вы запустили программу через командную строку. Таким образом, когда происходит сбой или зависание графического интерфейса, вы можете увидеть, какой вывод текста привел к нему.