2012-08-27 8 views
8

Mögliche Duplizieren:
Bidirectional (or reverse) debuggingGibt es einen Debugger, mit dem ich rückwärts durch den Code gehen kann?

Ich habe den Allwissenden Debugger (http://www.lambdacs.com/debugger/ODBDescription.html) nachgeschlagen, aber es ist spezifisch für Java. Gibt es einen Debugger mit derselben Funktionalität für native Anwendungen, d. H. C/C++?

Ich habe mich nicht klar gemacht. Ich würde gerne gefälschte Datenwerte/Code-Pfade aufbrechen und dann "Rollback", Debugging rückwärts, bis ich den Fehler in der Code/Logik/Design finde.

Ich weiß, ich kann Schritt für Schritt "vorwärts" Debuggen, ich möchte das gleiche rückwärts tun, so dass der Debugger seinen Kontext in jedem Schritt speichern müsste.

+1

Ich denke, gdb kann dies tun. Fügen Sie den Kompilierungsflags einfach -g hinzu – Wug

+0

Viele, (alle?) IDE-basierte Entwicklungsumgebungen verfügen über einen integrierten Debugger, der die Stack-Frames (Locals, Funktionsrückgaben) nach Quellcodezeilen anzeigen kann. Dann gibt es gdb für Kommandozeilen-Sachen. –

+0

Das ist eine der Hauptfunktionen eines Debuggers. Welche Debugger hast du angeschaut? Es gibt eine Liste auf Wikipedia, die Sie konsultieren können. –

Antwort

2

Ich denke, Sie sollten GDB für C/C++ verwenden. Sie haben einige Stack-Trace-Optionen und Sie können Haltepunkte in Ihrem Programm setzen und Schritt für Schritt ausführen.

Überprüfen Sie um oder finden Sie andere Tutorials im Internet.

Ich hoffe, es hilft.

+2

@templatetypedef Diese Antwort wurde gegeben, bevor das Rückwärtsgehen als Bedingung (Seufzer) bearbeitet wurde, obwohl GDB * dies tatsächlich unterstützt (erfordert GDB> = 7): http://sourceware.org/gdb/wiki/ReverseDebug –

-2

Für Linux GDB wird vorgeschlagen, während für Windows windbg ist besser.

+1

Ich habe viel Zeit damit verbracht, WinDbg mit meinem aktuellen Projekt zu arbeiten, nur um herauszufinden, dass es kein Debugging unterstützt. – David

6

GDB Version 7.0 (Fälligkeit im September 2009) wird die erste öffentliche Version von GDB sein Reverse Debugging zu unterstützen (die Fähigkeit, das Programm gedebuggt Schritt zu machen und auch weiterhin in Reverse)

NACHTRAG:

Visual Studio 2010 und höher unterstützt "Historische Debugging" ("IntelliTrace"):

+0

Visual Studio kann dies nur für .NET-Anwendungen tun, die in C# oder Visual Basic geschrieben wurden. Wie der Artikel sagt, "IntelliTrace unterstützt das Debuggen von C++ nicht" – RyanCu

0

gdb hat Befehle up n und down n zu wählen (n) Rahmen up oder down.

Wahrscheinlich kann dies helfen.

Verwandte Themen