Как отладить «*** обнаружено переполнение буфера ***: имя_программы прекращено» вместе с _FORTIFY_SOURCE=2

Моя программа вылетает с сообщением «*** обнаружено переполнение буфера ***: имя_программы прекращено», и я подозреваю, что это может быть связано с параметром компилятора «_FORTIFY_SOURCE=2», который я использую (источник: разница между gcc -D_FORTIFY_SOURCE =1 и -D_FORTIFY_SOURCE=2).

И вообще, как найти пункт программы, выдающий такую ​​ошибку?


69
1

Ответ:

Решено

И вообще, как найти пункт программы, выдающий такую ​​ошибку?

Для этой конкретной ошибки запуск программы под отладчиком сразу сообщит вам, где произошла ошибка.

Я могу попробовать, мое ощущение такое...

Вы должны попробовать это, и ваше чувство ошибочно.

P.S. Создание программы с помощью -fsanitize=address (если ваша среда компиляции и выполнения поддерживает это) и ее запуск могут привести к появлению более информативного сообщения об ошибке.