Как пропустить прошлые циклы в DDD (GDB) - PullRequest
10 голосов
/ 12 марта 2010

Во время многих, иногда затопляемых сеансов отладки с использованием DDD, я натыкаюсь на циклы. И я продолжаю нажимать кнопку «Далее», чтобы обойти это, и если есть много итераций, я просто устанавливаю точку останова сразу после нее и нажимаю «продолжить». Есть ли другой способ пройти петли?

Ответы [ 2 ]

15 голосов
/ 12 марта 2010

Вы хотите команду "до" - см. Руководство по GDB на http://www.gnu.org/software/gdb/documentation:

Продолжить работу до строки источника мимо текущей строки, в текущей кадр стека, достигнут. Эта команда используется, чтобы избежать одиночного шага через цикл более одного раза. это как следующая команда, за исключением того, что когда до прыжка автоматически продолжает выполнение пока счетчик программ не станет больше чем адрес прыжка.

Это означает, что когда вы достигнете конца из цикла после одного шага, хотя пока программа не продолжит выполнение, пока не выйдет из цикла. В напротив, следующая команда в конце цикл просто отступает к начало цикла, который заставляет вам шагать по следующему итерации.

3 голосов
/ 12 марта 2010

Я обычно использую «продолжить до здесь», который устанавливает временную точку останова в этом месте и немедленно продолжает выполнение. Доступ к нему осуществляется с помощью кнопки мыши 3, которая открывает всплывающее меню.

...