Проверка Clang во время выполнения: печать обратной трассировки

Компилятор Clang предоставляет ряд полезных проверок во время выполнения, например, например -fsanitize=unsigned-integer-overflow, Могу ли я распечатать обратную трассировку (например, используя gdb), если одна из проверок не пройдена? В настоящее время я получаю точное местоположение проблемы, но у меня нет контекста. Как я могу получить больше информации от этих проверок во время выполнения, особенно обратная трассировка?

2 ответа

Более простым решением, которое не требует включения фатальных ошибок, является установка env. переменная UBSAN_OPTIONS=print_stacktrace=1,

Программу можно отменить, используя следующие флаги:

-fsanitize=undefined-trap -fsanitize-undefined-trap-on-error -ftrap-function=abort

Последний параметр вызывает прерывание; Вы можете запустить программу в GDB и распечатать ее после завершения программы.

Источник - ответ на вопрос "Будут ли какие-либо программы обнаруживать переполнение буфера в структуре C/C++?"

Другие вопросы по тегам