问题标签 [bounds-checker]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - BoundsChecker 和 Purify 等 64 位工具
多年来,我使用了BoundsChecker和Purify这两个很棒的工具,但是这些应用程序的开发人员让我失望了,他们不再努力维护或开发它们。我们在两家公司都有公司帐户,他们都告诉我他们无意生产支持 64 位应用程序的版本。
任何人都可以推荐支持 64 位本机 C++/MFC 应用程序的开源或商业替代方案吗?
winapi - DrawFrameControl 中的 GDI 资源泄漏
似乎 DrawFrameControl() 创建了 Font 和 Brush 对象,将它们选择到 dc 中,并且没有删除它们。(根据 BoundsChecker 消息)。有没有人遇到过这样的事情?
visual-studio-2005 - 你能启动和停止边界检查器(DevPartner)吗?
我正在尝试使用 boundschecker 来分析一个相当复杂的程序。使用 boundschecker 运行程序几乎太慢了,无法使用,因为我需要将近一天的时间才能将程序运行到代码中我怀疑存在问题的位置。谁能给我一些关于如何在 Visual Studio 2005 中使用 boundschecker (DevPartner) 检查我的软件的某些部分的想法?
提前感谢您的所有帮助!
debugging - 适用于 Windows 的良好内存分析、泄漏和错误检测
我目前正在寻找适用于 Windows 的良好内存/泄漏检测工具。几年前,我用过 Numega 的 Boundschecker,非常好。现在它似乎已经卖给了 Compuware,后者显然又把它卖给了其他公司。
到目前为止,尝试评估当前版本的演示非常令人沮丧,这是最好的“企业”传统:
(a) 他们的网站上没有广告价格(大红色闪烁警告灯);
(b) 要求提供员工人数和其他私人信息的联系表;
(c) 没有回复我要求评估和价格的电子邮件。
我不得不得出结论,BoundsChecker 现在是“那些”产品之一。你知道的,你天真地打电话的类型,明天有 3 个穿黑色西装的男人出现在你的大楼里,想和你谈谈“伙伴关系”,而不是秘密地衡量你公司的规模,因此他们能得到多少远离向你收费。
所以,除了咆哮,任何人都可以推荐一个优秀的内存检查/泄漏检测工具,它的成本是多少,以及在哪里购买的建议?
delphi - 如何在 Delphi 中找到“列表索引越界”错误的位置
在 Delphi 2009 中,我的程序现在产生“列表索引超出范围”错误。它会生成一个弹出框:
(来源:beholdgenealogy.com)
我正在使用打开了所有运行时错误检查的“调试”构建配置。但这不会在错误发生之前捕获错误。
有没有什么简单的方法可以在我的程序中找到这个错误的根源,而不必设置断点并通过反复试验来缩小范围?
memory - 具有固定边界检查模式的内存区域的技术名称?
我想知道那些为调试目的分配并填充特殊模式的额外内存区域是否有一些技术名称,因此可以在运行时检查它们是否已被覆盖(从而检测可能的缓冲区溢出) ...
一位同事称它们为“Canarios”(西班牙语中的 Canaries),我认为这类似于在矿山中用于检测沼气的金丝雀,但我不确定是否在英文中使用了相同的名称.
c++ - 如何使 std::vector 的 operator[] 编译在 DEBUG 中而不是在 RELEASE 中进行边界检查
我正在使用 Visual Studio 2008。
我知道 std::vector 使用 at() 函数进行边界检查,并且如果您尝试使用运算符 [] 错误地访问某些内容(超出范围),则会出现未定义的行为。
我很好奇是否可以通过边界检查来编译我的程序。这样,operator[] 将使用 at() 函数并在任何超出范围时抛出 std::out_of_range 。
发布模式将在没有对 operator[] 的边界检查的情况下进行编译,因此性能不会降低。
我开始考虑这个问题是因为我正在将使用 Borland C++ 编写的应用程序迁移到 Visual Studio,并且在一小部分代码中我有这个(i=0,j=1):
向量 'v' 的大小是 [0][1] (所以向量的元素 0 只有一个元素)。这是未定义的行为,我知道,但 Borland 在这里返回 0,VS 正在崩溃。我更喜欢崩溃而不是返回 0,所以如果我可以通过抛出 std::out_of_range 异常来获得更多的“崩溃”,迁移将更快地完成(因此它会暴露 Borland 隐藏的更多错误)。
visual-c++ - Visual C++ 调试器和 BoundsChecker 之谜
查看 Visual C++ 调试器会话的屏幕截图:
(来源:lviv.ua)
执行点现在位于虚函数内部。“mDb”是对该类成员的对象的引用。“mDb”的类型为CDbBackend&。只有一个线程。红色矩形中的值应该相等,......但它们不是。这怎么可能?
正在调试的代码已使用 BoundsChecker(内存调试器和分析器)进行了检测。这种差异导致后来的崩溃。非插桩代码不会导致任何这些影响。我认为现在责怪 BoundsChecker 还为时过早——它很可能是 BoundsChecker 揭示的我的程序中的一个隐藏错误,这就是为什么我非常倾向于了解这种情况的原因。
为“b = &mDb”语句生成的程序集如下,以防相关。在此处捕获了通过此程序集的步骤,并显示了监视和寄存器(500kb avi 文件)。
vb.net - 可以在 Visual Basic 2008 中禁用数组边界检查吗
我知道这是 Visual Studio 早期版本中的高级编译器选项,有没有办法在 Visual Studio 2008 中禁用数组边界检查?我看不到它的选择。
c++ - BoundsChecker 显示不正确的内存泄漏消息
我将 BoundsChecker9.1 与 Visual C++ 一起使用。我有一堂课
当我运行我的程序时,BoundsChecker 工具将所有 push_back() 调用报告为内存泄漏,例如 Sxpush_back(AnotherClass())。当 Sample 类超出范围时,向量 x 中的所有元素不会总是被释放吗?如果是这样,关于为什么 BoundsChecker 将它们显示为内存泄漏的任何想法?而且我验证了“AnotherClass”也没有任何内存泄漏!