5

我想知道,英特尔 C++ 编译器是否有可用的边界检查?十年来,我正在处理大量不断发展的代码,并且迫切需要调试和重构。我需要任何我能得到的帮助。

4

3 回答 3

4

英特尔的编译器有几个边界检查选项。例如

check-pointers, Qcheck-pointers 确定编译器是否通过指针检查内存访问的边界。

http://software.intel.com/sites/products/documentation/doclib/iss/2013/compiler/cpp-lin/GUID-35036DDA-62B4-402F-8A21-1201C2706BF3.htm

于 2013-08-04T19:07:58.550 回答
2

C 数组以这种方式从根本上被破坏,您无法可靠地对它们进行边界检查。编译器也不能。英特尔的 C++ 编译器当然可以编译矢量类。打开迭代器调试,使用 at() 访问器。

于 2010-11-01T11:38:22.317 回答
1

如果您在 Linux 或 OS X 上工作,valgrind可以帮助您查找与内存访问相关的错误。它不支持 C++,因此将其输出与您的代码匹配可能需要一些工作。

于 2010-11-01T12:35:16.530 回答