Réponses:
Dépend de l'application. Différentes applications ont différents systèmes de journalisation; il n'y a pas un seul journal central qui contient toutes les sorties de tous les programmes qui s'exécutent sur votre système.
Cela étant dit, de nombreux programmes placent leurs fichiers journaux dans le répertoire /var/log
. Le fichier /var/log/syslog
(ou peut-être /var/log/messages
), en particulier, contient la sortie du "logger système", qui est un service rendu disponible par le système que les programmes peuvent utiliser (s'ils le souhaitent) pour la journalisation. Mais tous les programmes ne l'utilisent pas. Surtout, vous trouverez des messages de services système de bas niveau dans ce fichier, pas les applications graphiques que vous utilisez probablement normalement.
Vous souhaiterez peut-être en savoir plus sur l'emplacement des fichiers journaux standard .
les fichiers de plantage sont /var/log/crashes/
utilisés pour utiliser avec proportion pour signaler les bogues. Vous pouvez extraire un vidage de mémoire avec apport-unpack
, mettre ce vidage de mémoire dans gdb et découvrir la cause du blocage du programme.
Tout cela en supposant que vous êtes un programmeur. Si vous n'êtes pas ... eh bien, vous ne pouvez pas résoudre le problème de toute façon!
bt full
"oh regardez une trace ... avec des symboles manquants ... devinez que je dois installer des symboles de débogage et essayer de reproduire le crash ..." J'ai une fois compris comment définir un point d'arrêt ... c'est le plus avancé que j'ai obtenu avec.
Certaines applications ont des indicateurs qui peuvent être utilisés pour activer le débogage, tels que -d, -D, --debug, etc. Consultez la page de manuel de l'application ( man [my-app]
) ou exécutez l'application avec l'indicateur -h pour voir si elle possède un tel option.
De nombreuses applications GUI écrivent dans $ HOME / .xsession-errors, c'est donc un bon endroit pour vérifier la sortie.
maco a raison que la répartition est probablement le moyen le plus sûr d'obtenir de bonnes informations de débogage. Parfois, cependant, il ne capture pas le crash.
Si tout le reste échoue, vous pouvez également en forcer les informations en exécutant l'application dans gdb. Ce serait quelque chose comme:
$ gdb my-app
(gdb) run
... faites tout ce qui est nécessaire pour le faire planter ...
(gdb) bt full
et partez de là.
Si vous suivez la route gdb, vous voudrez également installer des symboles, comme mentionné précédemment. Voir https://wiki.ubuntu.com/DebuggingProgramCrash pour des conseils de tenue de main.
Si vous lancez votre application à partir d'un fichier de lancement .desktop, ajoutez l'option Terminal=true
à votre fichier .desktop. Cela ouvrira un terminal lorsque vous exécuterez le programme, la sortie sur le terminal sera similaire à ce que vous verriez si vous aviez exécuté le programme via la ligne de commande en premier lieu. De cette façon, lorsque l'interface graphique se bloque ou se bloque, vous pouvez voir quelle sortie de texte y conduisait.