2010-11-10 6 views
0

J'essaie de déboguer (à l'aide de gdb) un programme multithread, qui utilise des threads POSIX.Symboles de débogage manquants dans la bibliothèque pthread

Je reçois un message comme:

Reading symbols from /lib/libpthread.so.0...(no debugging symbols found)...done. 

ressemble à la bibliothèque n'est pas compilé avec l'option -g.

Où puis-je trouver cette bibliothèque? J'ai essayé de le trouver sur le Web mais je ne reçois pas les bonnes réponses ...

S'il vous plaît aider.

Répondre

5

Tout d'abord, à moins que vous voulez vraiment pas à l'intérieur des fonctions-ou pthread toute autre bibliothèque que vous ne aurez pas besoin des informations de débogage pour cette bibliothèque. Vous pouvez toujours déboguer l'application principale sans entrer dans les bibliothèques.

Si vous pensez qu'il y a un problème avec une bibliothèque, prenez une grande respiration et regardez à nouveau votre code. Les bibliothèques les plus courantes (comme pthread) ont un code assez solide. Si vous voulez toujours scruter à l'intérieur de pthread_cond_wait(), recherchez un paquet pour votre bibliothèque qui ressemble à quelque chose comme "[pkg] -debuginfo". Il devrait avoir ce que vous voulez.

+1

Dans les distributions basées sur Debian, les paquets avec des symboles de débogage sont appelés '* -dbg'. (Pas que je pense que vous avez besoin de déboguer pthread non plus.) – Cascabel

2

Cela dépend probablement beaucoup de votre système d'exploitation, de la distribution que ce soit. Sur mon système ubuntu il y a

/usr/lib/debug/lib/libpthread-2.11.1.so 
0

si vous ne parvenez pas à trouver les bibliothèques dbg dans votre système, vous pouvez regarder la version de débogage de package requis à l'aide apt-file find 'library name' | grep dbg et installer celui requis pour votre système.

Questions connexes