示例代码如下,如何使用gdb查找错误?
#include <stdio.h>
int main()
{
int arr[2];
int a = 3;
while(a>=0){
arr[a]=a;
a--;
}
return 1;
}
答案 0 :(得分:0)
如何使用gdb查找错误
GDB不是查找该错误的正确工具-Address Sanitizer是(Address Sanitizer会毫不费力地将您指向该错误的直接)。
如果您怀疑arr
上存在数组溢出,则可以在数组末尾的地址上设置观察点:
(gdb) watch arr[3]
更改该地址的值后,和GDB 将停止。
但这要求您已经知道您的程序中有堆栈溢出,而通常您没有。