gpt4 book ai didi

c - 如何使用gdb调试越界?

转载 作者:行者123 更新时间:2023-11-30 16:27:53 26 4
gpt4 key购买 nike

示例代码如下,如何使用gdb定位bug?

#include <stdio.h>

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

return 1;
}

最佳答案

how can I use gdb to locate the bug

GDB 不是定位此错误的正确工具 -- Address Sanitizer是(Address Sanitizer 会毫不费力地直接指出错误)。

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

(gdb) watch arr[3]

当该地址的值发生更改时,GDB停止。

但这要求您已经知道您的程序中存在堆栈溢出,但通常您并不知道。

关于c - 如何使用gdb调试越界?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52578967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com