Précédent   Forum du club des développeurs et IT Pro > C et C++ > Outils pour C & C++ > GDB
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 18/12/2009, 16h47   #1
pfxxx
Nouveau Membre du Club
 
pfxxx
Inscription : novembre 2009
Messages : 45
Détails du profil
Informations personnelles :
Nom : pfxxx

Informations forums :
Inscription : novembre 2009
Messages : 45
Points : 33
Points : 33
Par défaut la commande "next" semble bégailler

bonjour,

en traçant un prog en mode pas à pas avec la commande next, j'ai l'impression que gdb se mélange les pinceaux au niveau des lignes

par exemple :

(gdb) n
105 int acceptClient(int family,int listener, char **from) {
(gdb)
109 if( family == AF_INET ) {
(gdb)
119 } else if( family == AF_UNIX ) {
(gdb)
133 return -1;
(gdb)
119 } else if( family == AF_UNIX ) {
(gdb)
123 fd = accept(listener, (struct sockaddr*)&unaddr, &len);
(gdb)
122 len = sizeof(unaddr);
(gdb)
123 fd = accept(listener, (struct sockaddr*)&unaddr, &len);
(gdb)
122 len = sizeof(unaddr);
(gdb)
123 fd = accept(listener, (struct sockaddr*)&unaddr, &len);
(gdb)
124 if( len > sizeof(sa_family_t) ) {

la 1° commande visible est 'n' (next) suivi de <RETURN> pour répéter la dernière commande, c'est à dire 'next'
GDB semble "hésiter" entre les lignes 123 et 122
Il semble passer sur les lignes 123, 122, 123, 122, 123, 124, ...

Mais pourquoi ces aller retours entre les lignes 122 et 123 ?

J'avais supposé que les optimisations de gcc ne plaisaient peut être pas à GDB, aussi le prog est compilé avec "-g3 -Od" => mais ça ne change rien.

Quelqu'un pourrait m'expliquer ce phénomène (qui est un peu pénible ...) ?
pfxxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2009, 23h00   #2
aoyou
Membre émérite
 
Inscription : mars 2005
Messages : 860
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 860
Points : 964
Points : 964
Il n'y a pas un for ou un while qui traînerait à la ligne 120 ou 121 ?
aoyou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2009, 08h35   #3
pfxxx
Nouveau Membre du Club
 
pfxxx
Inscription : novembre 2009
Messages : 45
Détails du profil
Informations personnelles :
Nom : pfxxx

Informations forums :
Inscription : novembre 2009
Messages : 45
Points : 33
Points : 33
ben non
tout le code est affiché, il n'y a pas de ligne cachée
pfxxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2009, 15h09   #4
Pouet_forever
Membre chevronné
 
Avatar de Pouet_forever
 
Inscription : octobre 2009
Messages : 671
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 671
Points : 724
Points : 724
A vue de nez comme ça tu appelles plusieurs fois ta fonction (récursive ?) et donc tu appelles plusieurs fois tes lignes (pas seulement 122 et 123 si tu regardes bien)
__________________
Plus tu pédales moins fort, moins t'avances plus vite.
Pouet_forever est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2010, 12h25   #5
pfxxx
Nouveau Membre du Club
 
pfxxx
Inscription : novembre 2009
Messages : 45
Détails du profil
Informations personnelles :
Nom : pfxxx

Informations forums :
Inscription : novembre 2009
Messages : 45
Points : 33
Points : 33
???
acceptClient() : c'est la fonction dans laquelle je suis
accept() : c'est les sockets
donc 2 fonctions qui n'ont rien à voir entre elles et il n'y a pas de récursivité ici
pfxxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2010, 22h04   #6
aoyou
Membre émérite
 
Inscription : mars 2005
Messages : 860
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 860
Points : 964
Points : 964
Envoie ton programme.

On n'y voit rien comme ça.
aoyou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2010, 14h07   #7
Lavock
Membre expérimenté
 
Avatar de Lavock
 
Inscription : octobre 2009
Messages : 560
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 560
Points : 543
Points : 543
Si tu es en optimisé (-Ox), ce genre de comportement est courant... Essaye avec step pour voir si tu as le même genre de problème.
Lavock est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2010, 11h36   #8
pfxxx
Nouveau Membre du Club
 
pfxxx
Inscription : novembre 2009
Messages : 45
Détails du profil
Informations personnelles :
Nom : pfxxx

Informations forums :
Inscription : novembre 2009
Messages : 45
Points : 33
Points : 33
j'ai essayé en optimisation off => "-O0"
c'est pareil

je vais essayer de regarder le code généré par gcc et voir comment il place les n° de ligne pour le debugger
pfxxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h51.


 
 
 
 
Partenaires

Hébergement Web