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

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

Есть ли в gdb все, чтобы завершить выполнение текущего цикла?

2 ответа

Решение

Есть ли команда 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.

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

Другие вопросы по тегам