问题标签 [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.

0 投票
1 回答
156 浏览

indexing - D中的静态参数函数专业化

我在某处读到 D 支持将函数专门化为参数是编译时常量的调用。它的典型用途是在矩阵幂函数中(如果指数为 2 x*x,通常比一般情况快)。

我想要这个在我的成员函数中

BitSet我正在写一个静态大小的结构。这是为了在可能的情况下对索引变量进行编译时边界检查i。我想

就足够了,但随后 DMD 抱怨如下

我是否必须将参数设为i模板参数,例如使用 type U,然后使用 static if someTypeTrait!U。我试过这个,但 isMutable!Index 总是评估为真。

0 投票
1 回答
196 浏览

c++ - 使用 MinGW 检查 Debug 和 Release 中的 STL 边界

我正在从事一个遇到一些问题的项目(即定居者 2.5 回归根源)。我希望能够通过仅使用 stl 容器和边界检查来解决其中的一些问题。

那么是否有可能在发布模式下也可以在 STL 容器中使用边界检查?所以我们可以使用一个(性能较差的)版本,它会导致它们崩溃/抛出错误吗?

构建服务器使用 MinGW 从 linux 交叉编译到 windows 和 apple。

编辑:[]-operator 是专门使用的。更改为 .at() 将需要一个大型的搜索和替换操作,该操作必须在某个时候被反转。最好的情况是,如果有一个定义或将 []-behaviour 切换为 .at() 的东西

0 投票
1 回答
3366 浏览

julia - Julia 中的@inbounds 传播规则

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

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

@inbounds总是赢是正确的@boundscheck吗?如果函数没有内联,则唯一的例外,但这只是前面“一层”规则的一种情况,所以@propagate_inbounds即使在非内联函数调用中也会关闭边界检查?

0 投票
1 回答
1713 浏览

c++ - 无法安装 MPX 运行时驱动程序(用于边界检查)

在阅读了这篇关于检测内存泄漏的博文后,我决定从这里安装 MPX 运行时驱动程序。我右键单击 mpxruntime.inf 并选择“安装”。设备管理器随后会在系统设备下列出“Intel(R) MPX Runtime Driver”,但其图标在黄色三角形上有一个小感叹号。如果我右键单击该图标并选择属性,我会看到以下文本:

在这一点上,我不知道该尝试什么。

仅供参考:我正在运行带有 i7 6850K 处理器的 Windows 10。

编辑:查看带有CPU-Z 实用程序的处理器,它有一个名为“指令”的区域,列出了 MMX、SSE、VT-x、AES、TSX 等内容,但 MPX 并未出现在该列表中。也许这告诉我我的处理器没有 MPX 指令?

0 投票
0 回答
233 浏览

c - Intel mpx:如果没有越界操作,是什么导致 gcc [-Wchkp] 升温

Intel mpx是一组允许检查函数边界的处理器指令。如果通过 Intel mpx 检测到溢出,则会发出 SIGSEV 信号,即使在没有 Intel mpx 的情况下编译程序仍然能够运行。

在编译 libntfs‑3g 时,我遇到了在运行时确认的这个问题:

问题是我无法通过这个简单的指针分配看到缓冲区溢出:

当我用 libasan 编译 libntfs‑3g 时,在运行时没有检测到升温或溢出。它只发生在 ntfs‑3g

0 投票
1 回答
381 浏览

julia - @propagate_inbounds 在 Julia

考虑以下情况:

查看文档和一些示例,我确信在执行“@inbounds b[i, j]”(b 是 B 类型的数组)时会消除边界检查。然而,事实并非如此。我错过了什么?

0 投票
1 回答
143 浏览

c++ - Xcode Sanitizer 如何启用

使用 Xcode 12,Apple Clang Address Sanitizer,我启用...启用 C++ 容器溢出检查(用于调试和发布)。

我希望启用 C++ 容器溢出检查给我运行时警告,例如。通过将每个翻译[].at().

我运行类似于下面的代码(它出现在一堆以前的函数调用的末尾,其中元素的数量V在编译时无法知道。)

我没有得到预期的结果,没有对V.

问题:启用 C++ 容器溢出检查.at()是否应该像边界检查一样给我[]访问权限?我怎样才能做到这一点?