Comment obtenir la trace de la pile d'appels gdb ?

Aug 19 2020

J'ai un vidage mémoire et un fichier dans lequel les informations de débogage sont stockées, puis-je utiliser gdb sans utiliser de fichier exécutable pour obtenir une pile d'appels avec le nom des fonctions et des lignes ?

Réponses

1 EmployedRussian Aug 20 2020 at 10:04

puis-je utiliser gdb sans utiliser de fichier exécutable pour obtenir une pile d'appels avec le nom des fonctions et des lignes ?

Au moins sous Linux/x86_64, la réponse est non : les informations enregistrées après objcopy --only-keep-debugne suffisent pas ; vous avez également besoin du fichier exécutable.

Cela se produit (au moins en partie) parce que le debug_filen'a pas la .eh_framesection nécessaire pour se dérouler sur x86_64.

Si vous déboguez vous-même les vidages mémoire, il n'y a aucune raison de créer debug_file- conservez simplement l'exécutable d'origine avec des informations de débogage complètes pour le débogage (vous pouvez toujours envoyer un fichier dépouillé plus petit aux machines d'exécution).