如何使用gdb进行调试?

时间:2018-09-30 14:47:31

标签: c gdb indexoutofboundsexception

示例代码如下,如何使用gdb查找错误?

#include <stdio.h>

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

   return 1; 
} 

1 个答案:

答案 0 :(得分:0)

  

如何使用gdb查找错误

GDB不是查找该错误的正确工具-Address Sanitizer是(Address Sanitizer会毫不费力地将您指向该错误的直接)。

如果您怀疑arr上存在数组溢出,则可以在数组末尾的地址上设置观察点:

(gdb) watch arr[3]
更改该地址的值后,

和GDB 将停止。

但这要求您已经知道您的程序中有堆栈溢出,而通常您没有。