как я могу использовать GDB для обнаружения ошибки
GDB не правильный инструмент для обнаружения этой ошибки - Address Sanitizer is (Address Sanitizer укажет вам прямо на ошибку без особых усилий).
Если вы подозреваете, что на arr
переполнение массива, вы можете установить точку наблюдения на адресесразу за концом массива:
(gdb) watch arr[3]
и GDB остановится при изменении значения по этому адресу.
Но для этого необходимо, чтобы вы уже знает, что у вас в программе переполнение стека, а часто нет.