Как пропустить прошлые циклы в ddd (gdb)

Во время многих, иногда наводнения, сеансы отладки с помощью DDD, я натыкаюсь на циклы. И я продолжаю нажимать рядом с, заканчивают его, и если существует много повторений, я просто установил точку останова прямо после него, и нажатие "продолжается". Там какой-либо другой путь состоит в том, чтобы пойти мимо циклов?

10
задан sth 21 July 2010 в 11:41
поделиться

2 ответа

Вам нужна команда "до" - см. руководство по gdb по адресу http: // www. .gnu.org / software / gdb / documentation :

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

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

15
ответ дан 3 December 2019 в 20:41
поделиться

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

3
ответ дан 3 December 2019 в 20:41
поделиться