Débogage à distance GDB, impossible de trouver des symboles
Je suis en train de débogage à distance une application s'exécutant sur une machine avec l'adresse 192.168.98.64. Sur cette machine, je run:
gdbserver serveripaddr:4444 nom_du_programme
puis à partir du serveur, j'ai exécuter "gdb", puis à la gdb invite exécuter:
(gdb) cible à distance 192.168.98.64:4444 Débogage à distance à l'aide de 192.168.98.64:4444 [Nouveau Thread 28432] avertissement: impossible de charger vsyscall page car aucun exécutable a été spécifié essayez d'utiliser le menu "fichier" d'abord la commande. 0xb775e810 ?? () (gdb) break interne[TAB]
Je m'attendais à une pression de la touche TAB lorsque vous tentez de définir mon point d'arrêt pour afficher une liste des fonctions correspondantes de départ interne, mais il n'a pas d'apporter quoi que ce soit. Le code a été compilé avec le débogage activé avec -g. Ce que je fais mal?
source d'informationauteur fred basset
Vous devez vous connecter pour publier un commentaire.
Vous êtes censé donner GDB le fichier exécutable que vous déboguez (de préférence un non-dépouillé version):
Je viens de rencontré ce problème moi-même quand j'ai utilisé un cross-compilé gdb (vous aurez en général besoin de cette si votre hôte distant a une architecture différente). Dans ce cas, les symboles doivent être lus à partir du binaire compilé sur l'hôte distant. Je pensais que la suite fonctionne pour moi (même si les architectures sur les hôtes sont les mêmes):
Sur l'hôte distant:
puis sur l'hôte local en (cross-compilé) gdb:
Remplacer le
[*]
avec vos données. Vous pouvez l'utiliser comme un gdb script (d'où lesleep
dans la première ligne) ou de les entrer sur votre commande gdb ligne. Le répertoire optionnel ligne, dit-il d'ajouter la source locale de répertoire dans le chemin de recherche pour les sources. Cela peut être utile si vous utilisez une interface qui vous oriente vers le code source.Lors du débogage à distance, gdb client ne sait pas où les symboles de charge de. Vous avez deux options:
PS: assurez-vous d'avoir exécutable compilé avec les symboles de débogage
-g -O0