Wie verwende ich den MinGW gdb Debugger, um ein C ++ Programm in Windows zu debuggen?
Ich habe mir die Dokumentation zu dieser und nichts gefunden. Ich habe MinGW installiert und es funktioniert Super. Ich weiß nur nicht, wie man den debugger verwenden.
Einige einfache code, sagen wir in einer Datei namens "mycode.cpp":
int main()
{
int temp = 0;
for (int i = 0; i < 5; ++i)
temp += i;
return 0;
}
...wie würde ich das Debuggen. Was sind die Befehle, die ich verwenden, um debug-code mit MinGW und GDB unter windows? Kann ich Schritt durch den code über die Kommandozeile wie in Visual Studio? Wenn ja, welche Befehle muss ich verwenden?
Gibt es irgendwelche tutorials für die Verwendung von GDB gibt? Ich konnte keine finden, aber wenn jemand könnte mich direkt zu einer, das wäre auch toll. Ich bin müde des Schreibens Tonnen std::cout
- Anweisungen zum Debuggen von komplexem code.
InformationsquelleAutor der Frage Mike Webb | 2011-01-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den ersten Schritt kompilieren Sie Ihr Programm mit
-g
debugging-Informationen in die ausführbare Datei:Dann das Programm geladen werden kann
gdb
:Ein paar Befehle, um Ihnen den Einstieg:
break main
veranlasst den debugger zu unterbrechen, wennmain
genannt wird. Sie können auch brechen auf code-Zeilen mitbreak FILENAME:LINENO
. Zum Beispielbreak mycode.cpp:4
bricht die Ausführung des Programmes erreicht, Zeile 4 vonmycode.cpp
.start
startet das Programm. In Ihrem Fall, Sie brauchen, um Haltepunkte zu setzen, bevor das Programm, da es schnell beendet.Einen Haltepunkt:
print VARNAME
. Das ist, wie Sie Werte von Variablen ausdrucken, egal ob lokal, static oder global. Zum Beispiel, bei derfor
Schleife, Sie können die Artprint temp
zum ausdrucken der Wert dertemp
variable.step
Dies entspricht der "step-in".next
oderadv +1
Voraus auf die nächste Zeile (wie "step over"). Sie können auch vorab zu einer bestimmten Zeile eine bestimmte Datei mit, zum Beispieladv mycode.cpp:8
.bt
Drucken ein backtrace. Dies ist ein stack-trace, im wesentlichen.continue
Genau wie ein "weiter" Bedienung des visual debugger. Es bewirkt, dass die Programmausführung fortgesetzt wird, bis die nächste Pause oder das Programm beendet werden.Das beste, was zu Lesen ist die GDB-Benutzer-Handbuch.
InformationsquelleAutor der Antwort Daniel Trebbien
Gibt es ein paar gdb-guis für windows, die in dieser Frage windows-version des GDB-frontends DDD
Obwohl die DDD wurde nicht portiert
InformationsquelleAutor der Antwort Martin Beckett