Подтвердить что ты не робот

Есть ли команда gdb для завершения цикла?

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

Нужно ли в gdb завершить выполнение текущего цикла?

4b9b3361

Ответ 1

Есть ли команда gdb для завершения построения цикла?

Выполнить until в последней строке цикла или until NNN, где NNN - последняя строка цикла.

(gdb) help until
Execute until the program reaches a source line greater than the current
or a specified location (same args as break command) within the current frame.

не требуется установить точку останова и затем очистить.

Временные точки останова автоматически очищаются:

(gdb) help tbreak
Set a temporary breakpoint.
Like "break" except the breakpoint is only temporary,
so it will be deleted when hit.  Equivalent to "break" followed
by using "enable delete" on the breakpoint number.

Ответ 2

gdb не знает, где заканчивается цикл, поэтому он не может этого сделать. Я думаю, что лучшее, что вы можете сделать, это использовать команду advance с местоположением после цикла.