gdb perd les informations sur le numéro de ligne (sur les modules du noyau) après le point d'arrêt

StackOverflow https://stackoverflow.com//questions/10651485

Question

Je connecte gdb au noyau d'une machine virtuelle et j'essaie de déboguer le module du noyau.Je peux me connecter à la machine virtuelle.J'ai des informations sur les symboles pour le code du noyau et je peux très bien parcourir le code du noyau.

Lorsque j'ajoute le fichier de symboles de mon module noyau (que je le fasse avant ou après la connexion à distance, d'ailleurs), je peux list <function_name> des informations sur la fonction, jusqu'à J'ai défini un point d'arrêt ;après cela:

(gdb) b function_name
Breakpoint 1 at 0xffffffffa01d0074 (3 locations)
(gdb) list function_name
No line number known for function_name.

Informations Complémentaires:

  • L'hôte et l'invité sont Fedora 16 64 bits.
  • Le noyau que je débogue est 3.0.8 - notez que ce noyau a bien fonctionné sur une configuration 32 bits antérieure avec un environnement et une configuration de connexion à distance différents.
  • J'ai essayé cela avec gdb 7.2 et 7.3.50.

Des idées sur ce qui ne va pas ?Cela aiderait si je savais avec certitude si le problème venait de mon noyau, de la compilation du module du noyau, de la connexion ou de gdb.

Mise à jour:Avec gdb 7.1, j'obtiens ce qui suit :

...
(gdb) b function_name
/gdb/breakpoint.c:7903: internal-error: expand_line_sal_maybe: Assertion `found' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.

Qu'est-ce que cela signifie?

Était-ce utile?

La solution

Une réponse partielle :

Avec gdb 7.1, recompiler le noyau et le module noyau avec -gdwarf-2, et le module avec -O0 Il semble avoir fait l'affaire.Je ne sais pas encore de quoi il s'agit ni pourquoi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top