Cher Forum,
Je cherche comment produire des fichiers de symboles avec GCC / G++. L’idée est de produire un exécutable le plus petit possible et stockant les symboles et les informations de débogage dans un fichier externe tout en continuant à pouvoir déboguer le processus et analyser les éventuelles core dump.
Pour ceux qui connaissent un peu Windows et le compilateur MS, il s’agirait de produire des fichiers ayant la même fonction que les fichiers pdb.
Merci pour vos réponses.
# Réponse à moi-même
Posté par Benoit . Évalué à 8.
1ère solution, la plus simple :
* Compiler et lier avec les informations de débogage (gcc *.o -o program.dbg)
* Alléger le fichier (strip -o program program.dbg)
* Eventuellement alléger le fichier contenant les informations de débogage (strip -only-keep-debug program.dbg)
* Appeler gdb en fournissant les informations de débogage (gdb --exec=program --symbols=program.dbg) ou charger celles-ci à postériori (exec program et symbol program.dbg)
2ème solution, moins souple :
* Compiler et lier avec les informations de débogage (gcc *.o -o program)
* Extraire les informations de débogage (objcopy --only-keep-debug program .debug/program.dbg)
* Alléger le fichier (strip --strip-debug --strip-unneeded program)
* Créé une entrée .gnu_debuglink indiquant l’emplacement du fichier contenant les informations de débogage (objcopy --add-gnu-debuglink=.debug/program.dbg program)
* gdb trouve tout seul le fichier contenant les informations de débogage grâce à l’entrée créée précédemment, mais l’emplacement du fichier program.dbg ne peut être changé.
En un mot : RTFM
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.