标签: bounds-checker

GCC STL绑定检查

如何启用绑定检查operator[]和迭代器?

c++ gcc stl bounds-checker

40
推荐指数
1
解决办法
7101
查看次数

如何使std :: vector的operator []编译在DEBUG中进行边界检查,但不在RELEASE中进行

我正在使用Visual Studio 2008.

我知道std :: vector已经使用at()函数进行边界检查,并且如果您尝试使用operator []错误地访问某些内容(超出范围),则会有未定义的行为.

我很好奇是否可以使用边界检查来编译我的程序.这样,operator []将使用at()函数,并在某些事物超出范围时抛出std :: out_of_range.

将在没有边界检查operator []的情况下编译释放模式,因此性能不会降低.

我开始考虑这个问题,因为我正在将使用Borland C++编写的应用程序迁移到Visual Studio,并且在我的代码的一小部分中将其迁移(i = 0,j = 1):

v[i][j]; //v is a std::vector<std::vector<int> >
Run Code Online (Sandbox Code Playgroud)

向量'v'的大小为[0] [1](因此向量的元素0只有一个元素).这是未定义的行为,我知道,但是Borland在这里返回0,VS正在崩溃.我喜欢崩溃比返回0更好,所以如果我可以通过抛出std :: out_of_range异常得到更多'崩溃',迁移将更快完成(因此它会暴露更多Borland隐藏的错误).

c++ visual-studio-2008 bounds-checker

25
推荐指数
2
解决办法
1万
查看次数

64位工具,如BoundsChecker和Purify

多年来我使用了两个很棒的工具BoundsChecker&Purify,但这些应用程序的开发人员让我失望,他们不再努力维护它们或开发它们.我们在两家公司都有公司账户,他们都告诉我他们无意生产支持64位应用程序的版本.

任何人都可以推荐支持64位本机C++/MFC应用程序的开源或商业替代品吗?

c++ purify mfc bounds-checker

17
推荐指数
2
解决办法
1万
查看次数

如何在Delphi中找到"List index out of bounds"错误的位置

在Delphi 2009中,我的程序现在生成"List index of bounds"错误.它会生成一个弹出框:

alt text http://www.beholdgenealogy.com/img/boundserror.gif

我正在使用"调试"构建配置,该配置已启用所有运行时错误检查.但这并没有在错误发生之前捕获错误.

是否有任何简单的方法可以在我的程序中找到此错误的来源,而无需通过反复试验来缩小断点并缩小范围?

delphi error-handling bounds-checker

10
推荐指数
3
解决办法
2万
查看次数

在Julia中@inbounds传播规则

我正在寻找Julia中边界检查规则的一些说明.这意味着如果我放在@inboundsfor循环的开头,

@inbounds for ... end
Run Code Online (Sandbox Code Playgroud)

然后只有"一层"的内部传播,所以如果内部有一个for循环,那么@inbounds不会关闭那里的边界检查吗?如果我使用@propagate_inbounds它,它将进入嵌套的for循环?

@inbounds永远胜利是否正确@boundscheck?如果函数不是内联,但唯一的例外是,刚刚过去的"一层"的规则的情况下,因此@propagate_inbounds将关闭边界的非内联函数调用,即使检查?

bounds-checker julia

9
推荐指数
1
解决办法
1431
查看次数

Windows的良好内存分析,泄漏和错误检测

我目前正在为Windows寻找一个良好的内存/泄漏检测工具.几年前,我使用了Numega的Boundschecker,这非常好.现在它似乎已被出售给Compuware,后者显然已将其再次出售给其他公司.

在最好的"企业"传统中,试图评估当前版本的演示到目前为止非常令人沮丧:

(a)其网站上没有广告价格(大红灯警告灯);
(b)要求提供雇主人数和其他私人信息的联系表格;
(c)没有回复我要求评估和价格的电子邮件.

我必须得出结论,BoundsChecker现在是"那些"产品之一.你知道吗,你天真地打电话的那种类型,明天穿着黑色西装的3个男人出现在你的建筑物里想要和你讨论"伙伴关系",而不是秘密地衡量你公司的规模,因此他们可以得到多少带你充电

那么,撇开,任何人都可以推荐一个优秀的内存检查/泄漏检测工具,它的成本是多少,并建议在哪里购买?

debugging profiling memory-leaks bounds-checker

8
推荐指数
2
解决办法
1万
查看次数

虚拟析构函数如何工作?

几个小时后,我正在摆弄一个内存泄漏问题,事实证明我真的有一些关于虚拟析构函数的基本内容错了!让我来解释一下我的班级设计.

class Base
{
  virtual push_elements()
  {}
};

class Derived:public Base
{
vector<int> x;
public:
   void push_elements(){ 
      for(int i=0;i <5;i++)
         x.push_back(i); 
   }
};

void main()
{
    Base* b = new Derived();
    b->push_elements();
    delete b;
}
Run Code Online (Sandbox Code Playgroud)

边界检查器工具报告派生类向量中的内存泄漏.我发现析构函数不是虚拟的,并且不会调用派生类析构函数.当我将析构函数虚拟化时,令人惊讶地得到了解决.即使未调用派生类析构函数,也不会自动释放向量吗?这是BoundsChecker工具中的怪癖还是我对虚拟析构函数的理解错误?

c++ destructor visual-c++ bounds-checker

6
推荐指数
2
解决办法
3076
查看次数

检查可变长度阵列(VLA)的界限?

有没有办法检查VLA中的缓冲区溢出?我使用-fstack-protector-all -Wstack-protector但得到以下警告:

警告:不保护局部变量:可变长度缓冲区

有没有实现这个目标的图书馆?(-lefence用于堆内存)

我目前正在使用Valgrind和gdb.

c gcc bounds-checker

5
推荐指数
1
解决办法
586
查看次数

任何程序都会在C/C++结构中检测到缓冲区溢出吗?

考虑以下程序:

struct abc
{
    int x[5];
    int y[5];
};

int main()
{
    struct abc test;
    test.y[0] = 10;
    printf("%d", test.x[5]);
}
Run Code Online (Sandbox Code Playgroud)

(借用来自结构的一个元素来查看另一个元素是否合法?)

BoundsChecker没有将此检测为溢出.是否有任何程序可以检测到这种类型的编程错误?

c c++ arrays struct bounds-checker

4
推荐指数
1
解决办法
1084
查看次数

具有固定模式的内存区域的技术名称,用于边界检查?

我想知道是否有一些额外内存区域的技术名称,这些区域分配用于调试目的并填充特殊模式,因此可以在运行时检查它们是否已被覆盖(从而检测到可能的缓冲区溢出) ...

一位老乡称他们为"Canarios"(西班牙语中的加那利群岛),我认为这是用于在矿井中用来检测沼气的金丝雀鸟的类比,但我不确定英文中是否使用相同的名称.

memory nomenclature bounds-checker

2
推荐指数
1
解决办法
127
查看次数