У меня есть функция, которая вызывается очень много раз и в конечном итоге перестает работать.
Однако я не хочу устанавливать точку останова для этой функции и останавливаться после каждого ее вызова, потому что я буду здесь много лет.
Я слышал, что я могу установить counter
в GDB точку останова, и каждый раз, когда точка останова достигается, счетчик уменьшается и срабатывает только тогда, когда counter
= 0.
Это правильно, и если да, то как мне это сделать? Пожалуйста, укажите код GDB для установки такой точки останова.
gdb
breakpoints
Тони Старк
источник
источник
Ответы:
Прочтите раздел 5.1.6 руководства GDB. Что вам нужно сделать, это сначала установить точку останова, а затем установить «счетчик игнорирования» для этого номера точки останова, например
ignore 23 1000
.Если вы не знаете, сколько раз игнорировать точку останова, и не хотите считать вручную, может помочь следующее:
источник
continue <n>
Это удобный метод, который пропускает время последней точки останова
n - 1
(и, следовательно, останавливается на n-м ударе):main.c
Применение:
Сессия GDB:
источник