Когда вы делаете запрос, подобный break future.hh:800
, GDB пытается установить точку останова на каждом возможном адресе, соответствующем этому местоположению источника.
В вашем случае, скорее всего, происходит то, что деструктор былмного раз, так что вы получите очень много точек останова.(Другой менее вероятный вариант - ошибка компилятора, приводящая к тому, что он как-то генерирует неверные таблицы строк.)
Компиляция без оптимизации не очень поможет - это может привести к меньшему количеству точек останова, но вы все равно увидите толькостолько остановок, потому что все, что происходит, - это остановка при каждом вызове деструктора.
Вместо этого, если вы знаете, что хотите останавливаться только на определенных деструкторах, тогда лучший подход - попытаться сузитьточки, в которых происходят остановки.Несколько идей:
Установите точку останова в окружающем вас коде, а не в этом деструкторе
Отключите некоторые или большинство местна точке останова.(В gdb точки останова можно отключить по отдельности.)
Сделайте условную точку останова условной, чтобы попытаться уменьшить количество нежелательных остановок