Maison >Tutoriel système >Linux >Utilisez coredumpctl pour rechercher et corriger les bugs
Un fait malheureux est que tous les logiciels ont des bugs, et certains bugs peuvent provoquer des pannes du système. Lorsque cela se produit, il laisse souvent un fichier de données sur le disque appelé « core dump ». Ce fichier contient des données pertinentes sur le moment où votre système est tombé en panne et peut aider à déterminer pourquoi le crash s'est produit. Les développeurs demandent souvent des données sous la forme d'un « traçage » montrant le flux d'instructions qui ont conduit au crash. Les développeurs peuvent l'utiliser pour corriger des bugs afin d'améliorer le système. Si votre système tombe en panne, voici comment générer facilement un traçage.
La plupart des systèmes Fedora utilisent l'outil de rapport automatique d'erreurs (ABRT) [1] pour capturer automatiquement les fichiers de plantage et enregistrer les bogues. Cependant, cette méthode peut être utile si vous avez désactivé le service ou supprimé le package.
Si vous rencontrez des pannes du système, assurez-vous d'abord que vous utilisez la dernière version du logiciel. Les mises à jour contiennent souvent des correctifs pour les bogues qui ont été découverts et qui provoquent de graves erreurs et plantages. Après la mise à jour, essayez de reproduire la situation à l'origine de l'erreur.
Si le crash persiste ou si vous utilisez déjà le dernier logiciel, il existe l'outil utile coredumpctl. Ce programme aide à trouver et à gérer les plantages. Pour voir une liste de tous les core dumps sur votre système, exécutez la commande suivante :
coredumpctl list
Ne soyez pas surpris si vous voyez une liste plus longue que prévu. Parfois, les composants du système se bloquent silencieusement en arrière-plan et se rétablissent d'eux-mêmes. Un moyen simple de trouver rapidement les décharges du jour est d'utiliser l'option -depuis :
coredumpctl list --since=today
La colonne "PID" contient l'ID du processus utilisé pour identifier le dump. Veuillez faire attention à ce numéro car vous en aurez besoin plus tard. Ou, si vous ne voulez pas vous en souvenir, affectez-le à une variable en utilisant :
MYPID=<PID>
Pour afficher des informations sur les core dumps, utilisez cette commande (utilisez la variable $MYPID ou remplacez le numéro PID) :
coredumpctl info $MYPID
Le symbole de débogage s'échappe entre les données des core dumps et les instructions du code d'origine. Ces données symboliques peuvent être assez volumineuses. Contrairement aux packages que la plupart des utilisateurs exécutent sur les systèmes Fedora, les symboles sont installés en tant que package "debuginfo". Pour déterminer quels packages debuginfo vous devez installer, exécutez d'abord la commande suivante :
coredumpctl gdb $MYPID
Cela peut afficher de nombreuses informations à l'écran. La dernière ligne pourrait vous demander d'utiliser dnf pour installer plus de packages debuginfo. Exécutez cette commande avec sudo [2] pour installer :
sudo dnf debuginfo-install <packages...>
Ensuite, essayez à nouveau la commande coredumpctl gdb $MYPID. Vous devrez peut-être répéter cette opération à plusieurs reprises, car d'autres symboles seront développés dans le traçage.
Exécutez la commande suivante dans le débogueur pour enregistrer les informations :
set logging file mybacktrace.txt set logging on
Vous constaterez peut-être que désactiver la pagination peut être utile. Pour les longs traçages, cela fait gagner du temps.
set pagination off
Maintenant, lancez le traçage :
thread apply all bt full
Vous pouvez maintenant taper quit pour quitter le débogueur. mybacktrace.txt contient des informations de trace qui peuvent être attachées à un bug ou à un problème. Ou, si vous collaborez avec quelqu'un en temps réel, vous pouvez télécharger du texte sur Pastebin. Quoi qu’il en soit, vous pouvez désormais fournir aux développeurs davantage d’aide pour résoudre les problèmes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!