检测数组越界访问违规行为

3

我修改了一个模拟器的小部分,但是遇到了奇怪的段错误。GDB显示错误出现在我没有修改的一个类中。我猜测我的代码在访问自己的数组时存在内存访问冲突,导致其他数组的内容被破坏(这些数组分配在程序内存空间中)。有没有调试工具可以检测出界但在程序空间内的访问?

2个回答

13
简而言之,Valgrind 可以做到这一点。只需将其作为 valgrind /path/to/executable 运行即可。

1
你正在寻找valgrind
它可以在大多数Linux发行版上作为一个软件包使用,并且可以检测内存访问。
只需使用valgrind启动程序即可: valgrind ./program

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接