Ich habe mich umgeschaut, konnte aber nicht herausfinden, wie man das Ergebnis einer Auswertung in GDB ausdrucken kann. Zum Beispiel im folgenden Code:
%Vor%(oben habe ich eine mögliche Methode zur Überprüfung der alphabetischen Reihenfolge für Strings ausprobiert, und war nicht absolut sicher, dass es richtig funktioniert.)
Jetzt konnte ich min_node
sehen und sehen, ob sich der Wert ändert, aber bei mehr Code ist das manchmal komplizierter. Ich frage mich, ob es eine einfache Möglichkeit gibt, die Auswertung eines Tests auf der Linie zu beobachten, wo GDB / Programmablauf gerade ist.
In gdb gibt es kein einziges Einzelschrittverfahren auf Expressionsebene, wenn Sie danach fragen.
Ihre Optionen sind (von den meisten bis zu selten verwendeten):
print strcmp(current_node->word,min_node->word)
ausführen. Überraschenderweise funktioniert das: gdb kann Funktionsaufrufe auswerten, indem es Code in das laufende Programm einfügt und es den Code ausführt. Natürlich ist das ziemlich gefährlich, wenn die Funktionen Nebenwirkungen haben oder abstürzen können; in diesem Fall ist es so harmlos, dass die Menschen normalerweise nicht an mögliche Probleme denken. Sie können einfach versuchen, einzugeben:
rufe "my_funtion ()"
aufsoweit ich mich erinnere, obwohl es nicht funktioniert, wenn eine Funktion inline ist.