So drucken Sie das Ergebnis von C++ - Bewertung mit GDB?
Habe ich schon Rum gesucht, aber war nicht in der Lage, um herauszufinden, wie man drucken Sie in GDB das Ergebnis einer Auswertung. Zum Beispiel in dem folgenden code:
if (strcmp(current_node->word,min_node->word) > 0)
min_node = current_node;
(oben habe ich versucht, eine mögliche Methode für die Prüfung alphabetischer Reihenfolge für Streicher, und war nicht absolut sicher, dass es ordnungsgemäß funktioniert.)
Nun konnte ich beobachten min_node
und sehen, ob der Wert ändert sich aber in mehr beteiligt-code dies ist manchmal komplizierter. Ich Frage mich, ob es ist ein einfacher Weg, um zu sehen, die Auswertung der test auf der Zeile, wo der GDB /Programm-Ablauf aktuell ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist kein Ausdruck-level-single-stepping im gdb, wenn das, was Sie fordern.
Ihre Optionen sind (aus am häufigsten zu den meisten selten genutzt):
print strcmp(current_node->word,min_node->word)
. Erstaunlich, das funktioniert: gdb auswerten kann, Funktionsaufrufe, durch die Injektion von code in das laufende Programm und den code auszuführen. Das ist natürlich ziemlich gefährlich, wenn die Funktionen Nebenwirkungen haben oder kann Abstürzen; in diesem Fall ist es so harmlos, dass die Menschen in der Regel nicht denken, über mögliche Probleme.können Sie einfach versuchen zu geben :
call "my_funtion()"
soweit ich rember, aber es wird nicht funktionieren, wenn eine Funktion inlined.