【发布时间】:2012-04-17 23:03:42
【问题描述】:
我正在使用一个大型 C 库,其中一些数组索引是使用 int 计算的。
我需要找到一种在运行时捕获整数溢出的方法,以便缩小到有问题的代码行。 Libc 手册状态:
FPE_INTOVF_TRAP 整数溢出(在 C 程序中不可能,除非您以特定于硬件的方式启用溢出捕获)。
但是 gcc 选项 -ffpe-trap 表明这些选项仅适用于 FP 号码?
那么如何启用整数溢出陷阱呢?我的系统是 Xeon/Core2, gcc-4.x, Linux 2.6
我查看了类似的问题,但它们都归结为修改代码。不过,我首先需要知道哪个代码有问题。
如果 Xeons 不能捕获溢出,哪些处理器可以?我也可以访问非 emt64 机器。
我同时找到了一个专为 llvm 设计的工具:http://embed.cs.utah.edu/ioc/ 但是似乎没有 gcc/icc 的等价物?
【问题讨论】:
-
据我所知,没有 x86 处理器支持捕获整数溢出。许多 RISC cpu 都可以(至少 power 和 sparc 都可以),以及较旧的小型/大型机 CPU(例如 VAX)
-
我可以试试 Power,没有 VAX。
标签: c debugging operating-system