C ++ - 检测超出范围的访问

时间:2011-09-21 09:37:23

标签: c++ debugging memory profiling

我想分析我的C ++代码以找到向量和数组中的错误访问(超出范围访问),是否有工具?

提前致谢

4 个答案:

答案 0 :(得分:10)

如果您正在使用gcc,则可以使用_GLIBCXX_DEBUG和_GLIBXX_DEBUG_PEDANTIC进行编译。如果请求超出边界访问权限,这将启用glibc断言。

使用valgrind :: memcheck进行测试也会显示错误的内存读取

答案 1 :(得分:6)

是:Valgrind

还有很多人:http://en.wikipedia.org/wiki/Memory_debugger

另请注意,大多数实施例如std::vector具有调试模式,它们将执行运行时边界检查。

答案 2 :(得分:2)

有一些付费工具可以进行静态分析

klockwork

coverity

IBM Rational Purify 进行动态分析。

答案 3 :(得分:0)

在您的数组上创建一个类,并在该类中创建一些控制函数 与运营商和.... 然后使用这个类。