J'essaye de déboguer un programme que j'ai écrit en C++. Voici le code:GDB étape sur la fonction (suivant) ne semble pas fonctionner
void a() { }
void b() { a(); }
int main() { b(); return 0; }
Je l'ai compilé en utilisant: g++ -g3 -O0 -o cards.exe cards.cpp
. Voici la sortie de ma session gdb:
(gdb) b main
Breakpoint 1 at 0x401421: file cards.cpp, line 10.
(gdb) r
Starting program: C:\workspace\Cards\src/cards.exe
[New thread 1624.0xa28]
Breakpoint 1, main() at cards.cpp:10
10 int main()
(gdb) n
12 b();
(gdb) n
b() at cards.cpp:5 5
void b()
(gdb) n
7 a();
(gdb) quit
The program is running. Exit anyway? (y or n)
Ma question est, pourquoi l'envoi d'une commande à côté de gdb étape encore en fonction? J'utilise g ++ 4.2.1-sjlj et gdb 6.8.
Avez-vous essayé quelque chose de plus complexe? – stefanB
En fait oui, j'ai essayé de faire des invocations en boucle à un(). Ça ne marchera toujours pas. J'ai également essayé de désactiver Inline avec __attribute __ ((noinline)) mais en vain. J'ai essayé ceci sur mon Hackintosh et cela a fonctionné. –