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 ...) ?
Partager