Могу ли я использовать 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