2010-03-12 5 views
10

Während vieler, manchmal überflutet, Debugging-Sitzungen mit DDD stolpere ich über Schleifen. Und ich drücke weiter, um darüber zu kommen, und wenn es viele Iterationen gibt, setze ich direkt danach einen Haltepunkt und drücke "Weiter". Gibt es eine andere Möglichkeit, Schleifen zu überwinden?So überspringen Sie vergangene Schleifen in ddd (gdb)

+0

Danke für s/bestanden/Vergangenheit/g ... Englisch ist nicht meine erste Sprache, obwohl ich unbestreitbar immer besser darin bin. – vehomzzz

Antwort

15

Sie den „bis“ Befehl wollen - siehe gdb Handbuch bei http://www.gnu.org/software/gdb/documentation:

weiter, bis einer Source-Leitung vorbei an der aktuellen Zeile, in dem aktuellen Stapelrahmen ausgeführt wird, erreicht ist. Dieser Befehl wird verwendet, um einzelne Schritte durch eine Schleife mehr als einmal zu vermeiden. Es ist wie der nächste Befehl, außer dass wenn bis einen Sprung auftritt, es automatisch weiter Ausführung ausführt, bis der Programmzähler größer als die Adresse des Sprungs ist.

Dies bedeutet, dass wenn Sie das Ende eine Schleife nach Single-Stepping obwohl es erreichen, bis Ihr Programm fortsetzen Ausführung macht, bis er die Schleife beendet. In Kontrast, ein nächster Befehl am Ende von eine Schleife einfach zurück zum Anfang der Schleife, die Sie zwingt durch die nächste Iteration.

3

Normalerweise verwende ich "weiter bis hier", die einen temporären Haltepunkt an dieser Stelle setzt und sofort die Ausführung fortsetzt. Der Zugriff erfolgt über die Maustaste 3, die ein Popup-Menü öffnet.

Verwandte Themen