2010-07-09 4 views
1

Quand je surExécuterdans GDB:Pourquoi GDB est-il si lent lorsque je tape J'essaie d'imprimer un symbole invalide?

p some_nonexistant_variable_name

GDB prend minutes (parfois) de signaler qu'il ne peut pas trouver la variable portée.

De plus quand je tape:

p some_variable_that_is_in_scope-> toString()

il faut toujours ... parfois. Pas certain de pourquoi. J'utilise UBuntu 10.04, en exécutant GDB via Emacs 23. Des idées?

+1

Est-ce que cela se produit uniquement sous Emacs? Que se passe-t-il si gdb est exécuté depuis le terminal ou d'autres endroits? – vpit3833

+0

Quelle est la taille du projet? La sortie de 'maintenance info symtabs' est-elle importante? –

+0

'p some_variable_that_is_in_scope-> toString()' -> Au lieu d'accéder à l'aide des fonctions membres, accédez directement au champ, qu'il soit privé ou non. GDB vous laissera faire cela et il sera sûrement plus rapide. – Fanatic23

Répondre

1

Je pense qu'une version récente de gdb (6.5?) Avait un bug avec la recherche de grandes tables de symboles, et une version plus récente (6.7?) Le corrige. Découvrez ce bug report et voir si c'est pertinent.

Questions connexes