Могу ли я использовать gdb для пропуска строки без ввода номеров строк?

Я знаю, что я могу использовать jump для установки счетчика программы на определенную строку, и поэтому я могу пропустить одну или несколько строк (или выполнить несколько строк снова). Могу ли я просто пропустить следующую строку без ввода номеров строк?

Было бы очень удобно "прокомментировать" что-то во время выполнения.

Ответ 1

jump +1

переходит к следующей строке, то есть пропускает текущую строку. Вы также можете объединить его с tbreak +1, чтобы установить временную точку останова в точке перехода.

См. http://sourceware.org/gdb/current/onlinedocs/gdb/Specify-Location.html для получения дополнительных способов выражения местоположений с помощью gdb.

Обратите внимание, что без точки останова gdb скорее всего будет выполняться обычное выполнение вместо перехода. Поэтому, если прыжок не работает, убедитесь, что вы установили точку останова в пункте назначения.

Ответ 2

В моем конфигурационном файле .gdbinit у меня есть следующее:

define skip
    tbreak +1
    jump +1
end

Итак, просто введите skip в gdb, чтобы пропустить строку.

Ответ 3

Чтобы пропустить любые числа строк во время выполнения:

[Current Position -- in GDB] Line N
.......... // Lines To Skip
..........
..........
[Line To Execute - After Jumping] Line M

Поместите точку останова на линию M:

gdb$b M

Перейти к строке M:

gdb$jump M