GDB Schritt über-Funktion (next) scheint nicht zu funktionieren

Ich versuche zu Debuggen, ein Programm schrieb ich in C++. Hier ist der code:

void a() { }
void b() { a(); }
int main() { b(); return 0; }

Ich es kompiliert mit: g++ -g3 -O0 -o cards.exe cards.cpp.

Ist hier die Ausgabe von meinem GDB-Sitzung:

(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)

Warum senden Sie folgenden Befehl, um den GDB immer noch den Schritt in eine Funktion?

Bin ich mit g++ 4.2.1-sjlj-und GDB-6.8.

  • Haben Sie versucht, etwas komplexer?
  • Eigentlich ja, ich habe versucht, geloopt Aufrufe ein(). Immer noch nicht funktionieren. Ich habe auch versucht, das deaktivieren inlining mit __attribute__((noinline)) aber ohne Erfolg. Ich habe versucht diese auf meinem Hackintosh und es funktionierte.
Schreibe einen Kommentar