Vous pouvez pointer un seul fichier de symboles vers gdb avec la commande suivante:
symbol-file /usr/lib/debug/symbolfile.so
Mais comment dire à gdb de charger tous les fichiers de symboles du chemin donné, y compris les sous-répertoires?
Sur un système Linux, vous ne devriez jamais avoir à utiliser la commande GDB de symbol-file
en premier lieu.
L’astuce consiste à préparer vos fichiers binarys de manière à ce que GDB trouve automatiquement le fichier de symboles. C’est étonnamment facile à faire. Les instructions détaillées sont ici .
Utilisez la commande suivante: set solib-search-path path
La solution consiste à add-symbol-file
. Par exemple, si le fichier de symboles s’appelle lib.out
:
add-symbol-file lib.out 0
Ceci est particulièrement utile sur les systèmes embarqués où les développeurs d’applications utilisent une bibliothèque stockée dans la ROM. Le débogueur a besoin du fichier de symboles pour reconstruire la stack si l’exécution s’arrête au milieu d’un appel de fonction de bibliothèque. Cela fonctionne même si la bibliothèque a été générée sur un système distinct auquel les développeurs n’ont pas access.