Как использовать GDB для отладки за пределами? - PullRequest
0 голосов
/ 30 сентября 2018

Пример кода следующий: как я могу использовать gdb для поиска ошибки?

#include <stdio.h>

int main()  
{ 
   int arr[2]; 
   int a = 3;
   while(a>=0){
     arr[a]=a;
     a--;
   }

   return 1; 
} 

1 Ответ

0 голосов
/ 30 сентября 2018

как я могу использовать GDB для обнаружения ошибки

GDB не правильный инструмент для обнаружения этой ошибки - Address Sanitizer is (Address Sanitizer укажет вам прямо на ошибку без особых усилий).

Если вы подозреваете, что на arr переполнение массива, вы можете установить точку наблюдения на адресесразу за концом массива:

(gdb) watch arr[3]

и GDB остановится при изменении значения по этому адресу.

Но для этого необходимо, чтобы вы уже знает, что у вас в программе переполнение стека, а часто нет.

...