Maison >développement back-end >C++ >Comment puis-je déboguer les fichiers de base générés sur différentes distributions Linux ?

Comment puis-je déboguer les fichiers de base générés sur différentes distributions Linux ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-02 13:31:39794parcourir

How Can I Debug Core Files Generated on Different Linux Distributions?

Débogage des fichiers principaux avec des distributions mixtes

Lorsque vous rencontrez des fichiers principaux générés sur le système Linux d'un client qui diffère de l'environnement de développement, la trace de la pile peut ne pas avoir de sens en raison de divergences potentielles dans les adresses des bibliothèques.

Résolution de Stack Trace Ambiguïté

Pour résoudre ce problème, obtenez les bibliothèques partagées utilisées par l'exécutable à partir du système du client. Compressez-les dans une archive tar et extrayez-les dans un répertoire temporaire sur le système de développement. Dans GDB, définissez le préfixe solib-absolute-prefix pour qu'il pointe vers ce répertoire. Cela permettra à GDB de charger les versions correctes de la bibliothèque et de produire une trace de pile précise.

Bonnes pratiques de débogage

Pour simplifier le débogage, créez un binaire de débogage avec -g -Drapeaux d'optimisation O2. Utilisez strip -g pour supprimer les symboles de débogage du binaire final distribué aux clients. Lorsqu'un fichier principal est reçu, utilisez le binaire de débogage avec les informations symboliques complètes pour faciliter le débogage.

Ressources de débogage alternatives pour Linux et Solaris

  • Outils de débogage Linux : LLDB, valgrind, gdbserver, ptrace (https://www.drdobbs.com/debug-your-linux-system-with-the-swiss-army-knife/232400979)
  • Débogage Solaris avec dtrace, kdump, dtrace, adb (https://sysadmin-docs.oracle.com/html/E23191_02/bkabaacg.html#scrollcap16782)

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn