Когда происходит сбой приложения без вывода ошибки, есть ли журнал, который я могу проверить?

Иногда случается, что сбой некоторых приложений не приводит к ошибке вывода ( conky в моем случае, вероятно, является одной из моих настроек, которая неверна).

Есть ли где-нибудь журнал ошибок, который я могу проверить, чтобы понять, почему он выходит из строя?

19
задан 18 June 2012 в 22:21

6 ответов

Зависит от приложения. Разные приложения имеют разные системы протоколирования; нет ни одного центрального журнала, который бы содержал все выходные данные всех программ, запущенных на Вашей системе.

При этом многие программы помещают свои лог-файлы в каталог /var/log. Файл /var/log/syslog (или, может быть, /var/log/messages), в частности, содержит выходные данные "системного логгера", который представляет собой службу, доступную системой, которую программы могут использовать (по своему усмотрению) для протоколирования. Но не все программы используют его. В основном, в этом файле вы найдете сообщения от низкоуровневых системных служб, а не от графических приложений, которые вы, вероятно, используете обычно.

Вы можете захотеть прочитать подробнее о расположении стандартных лог-файлов .

15
ответ дан 18 June 2012 в 22:21

аварийные файлы идут в /var/log/crashes/ для использования с apport, чтобы сообщить об ошибках. Вы можете извлечь дамп ядра с помощью apport-unpack, пропустить этот дамп ядра через gdb и выяснить, что вызвало падение программы.

Это все в предположении, что вы программист. Если вы не... ну, вы все равно не можете исправить падение!

7
ответ дан 18 June 2012 в 22:21

вы можете перейти к /var/log/messages или crash, тогда вы можете запустить команду grep на них и искать приложение, которое ищет файлы, которые иногда могут стать довольно большими. Она вернёт информацию, относящуюся к вашему приложению. :)

1
ответ дан 18 June 2012 в 22:21

Если вы запускаете свой приложения из файла запуска .desktop, добавьте параметр Terminal = true в файл .desktop. Это откроет терминал, когда вы запустите программу, вывод на терминале будет аналогичен тому, что вы бы увидели, если бы вы запускали программу через командную строку в первую очередь. Таким образом, когда GUI выходит из строя или зависает, вы можете увидеть, какой вывод текста привел к этому.

1
ответ дан 18 June 2012 в 22:21

Некоторые приложения имеют флаги, которые могут быть использованы для включения отладки, такие как -d, -D, --debug и т.п. Проверьте man-страницу приложения (man [my-app]) или запустите приложение с флагом -h, чтобы проверить, есть ли у него такая возможность.

Многие приложения с графическим интерфейсом пишут в $HOME/.xsession-ошибки, так что это хорошее место для проверки вывода.

maco прав, что apport, вероятно, самый верный способ получить хорошую отладочную информацию. Иногда, однако, он не захватывает крах.

Если все остальное не удается, вы также можете выжать из него информацию, запустив приложение в gdb. Это будет что-то вроде:

$ gdb my-app

(gdb) run

... сделайте все, что нужно, чтобы заставить его упасть ...

(gdb) bt full

и перейдите оттуда.

Если вы пойдете по gdb-маршруту, вы также захотите установить символы, как уже упоминалось ранее. Смотрите https://wiki.ubuntu.com/DebuggingProgramCrash для рекомендаций по удержанию.

3
ответ дан 18 June 2012 в 22:21

Для conky также может быть, что в $HOME/.xsession-errors есть записи.

3
ответ дан 18 June 2012 в 22:21

Другие вопросы по тегам:

Похожие вопросы: