Maison  >  Article  >  Tutoriel système  >  Utilisez coredumpctl pour rechercher et corriger les bugs

Utilisez coredumpctl pour rechercher et corriger les bugs

PHPz
PHPzavant
2024-02-16 09:45:181228parcourir

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.
使用 coredumpctl 查找并处理 BUG

Commencez à utiliser coredumpctl

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
Installer le package debuginfo

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.

Capturer 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer