Ответ 1
Если исключение не реализовано, специальная функция библиотеки terminate()
автоматически вызывается. Terminate на самом деле является указателем на функцию, а значением по умолчанию является функция библиотеки Standard C abort()
. Вы можете установить точку останова при вызове функции abort()
и определить местоположение неперехваченного исключения.
break abort
...
run
...
bt
Вы можете установить terminate()
с помощью std::set_terminate()
. Вы должны иметь возможность установить точку останова на функцию завершения в gdb. Вы можете создать обратную трассировку стека из функции terminate()
, и эта обратная трассировка может помочь в определении местоположение исключения. Дополнительные сведения предоставлены здесь.