Odpowiedzi:
Zależy od aplikacji. Różne aplikacje mają różne systemy rejestrowania; nie ma jednego centralnego dziennika, który zawierałby wszystkie dane wyjściowe ze wszystkich programów uruchomionych w systemie.
Mimo to wiele programów umieszcza swoje pliki dziennika w katalogu /var/log
. Plik /var/log/syslog
(a może /var/log/messages
) zawiera w szczególności dane wyjściowe z „loggera systemowego”, który jest usługą udostępnianą przez system, z której programy mogą korzystać (jeśli chcą) do logowania. Ale nie wszystkie programy go używają. Najczęściej w tym pliku znajdują się wiadomości z usług systemowych niskiego poziomu, a nie aplikacje graficzne, których prawdopodobnie używasz normalnie.
Możesz przeczytać więcej na temat lokalizacji standardowych plików dziennika .
pliki awarii wchodzą do /var/log/crashes/
użytku z apport do zgłaszania błędów. Możesz wyodrębnić zrzut apport-unpack
rdzenia, przerzucić go przez gdb i dowiedzieć się, co powoduje awarię programu.
To wszystko zakładając, że jesteś programistą. Jeśli nie jesteś ... cóż, i tak nie możesz naprawić awarii!
bt full
„o, spójrz wstecz… z brakującymi symbolami… zgadnij, że muszę zainstalować symbole debugowania i spróbować odtworzyć awarię…” Kiedyś wymyśliłem, jak ustawić punkt przerwania ... to najbardziej zaawansowany, jaki udało mi się z tym zrobić.
Niektóre aplikacje mają flagi, których można użyć do włączenia debugowania, takie jak -d, -D, --debug itp. Sprawdź stronę podręcznika aplikacji ( man [my-app]
) lub uruchom aplikację z flagą -h, aby sprawdzić, czy ma taką opcję opcja.
Wiele aplikacji GUI zapisuje w $ HOME / .xsession-error, więc jest to dobre miejsce do sprawdzenia wyników.
Maco ma rację, że apport jest prawdopodobnie najbardziej pewnym sposobem na uzyskanie dobrych informacji debugowania. Czasami jednak nie rejestruje awarii.
Jeśli wszystko inne zawiedzie, możesz również wymusić z niego informacje, uruchamiając aplikację w gdb. To byłoby coś w stylu:
$ gdb my-app
(gdb) run
... rób wszystko, co konieczne, aby się zawiesić ...
(gdb) bt full
i stamtąd
Jeśli pójdziesz trasą gdb, będziesz również chciał zainstalować symbole, jak wspomniano wcześniej. Zobacz https://wiki.ubuntu.com/DebuggingProgramCrash, aby uzyskać porady dotyczące trzymania.
Jeśli uruchamiasz aplikację z pliku uruchamiającego .desktop, dodaj opcję Terminal=true
do pliku .desktop. Otworzy to terminal po uruchomieniu programu, dane wyjściowe na terminalu będą podobne do tego, co zobaczyłbyś, gdybyś uruchomił program za pomocą wiersza poleceń. W ten sposób, gdy GUI ulega awarii lub zawiesza się, możesz zobaczyć, do czego doprowadził tekst.