问题标签 [sigfpe]

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 回答
5671 浏览

c++ - 解码运行时错误 (SIGFPE)

这是 spoj.com ( http://www.spoj.com/problems/PRIC/ ) 上的一个问题。我们必须检查序列的数字是否:ai=( a(i-1)+1234567890 ) mod 2^ 31 是否为素数,第一个数字是 1。下面给出了我的代码(请尽量忽略笨拙。)基于 eratosthenes 的筛子。

问题:我们必须为 i=33,333,333 的序列打印“素数(1)或非(0)”,我的代码对于 i(代码中的 c3)值高达 8000 左右以及之后(例如 c3> 19000) 它开始给出 SIGFPE 错误。现在我用谷歌搜索了这个错误,它与除法/模减 0 有关。但是为什么该代码适用于高达 9000 的 c3 值但不能超过此值?

0 投票
1 回答
361 浏览

linux - 为什么不会出现浮点异常?

我正在学习浮点数的算术。我写了以下代码。但不会发生浮点异常。我的环境是 Cent OS 6.4 (x86_64)。

请教我这个理由。

0 投票
1 回答
537 浏览

c++ - Why does this gives a runtime floating point error?

I am doing an assignment for school which introduced hashmaps, and so I am creating a templated class for a hashmap that uses the std::hash function. The problem that I am having comes in my insert function, which is shown below:

My error occurs at the line: int bucket = intKey % this->size();.

I don't quite understand why this would give a floating point error since I am doing my work entirely in integers. With the key "banana" and the value 3, the hashed int is 2068534322. In the case where this->size is 5, the modulo should be evaluated as 2.

So, why exactly am I getting a floating point error?

EDIT 1: I also tried this->size() replaced with a hard-coded 5 (which is what this->size should evaluate to), so the this->size isn't having a problem evaluating with a 0.

0 投票
1 回答
485 浏览

assembly - fpu ia-32,浮点异常

我正在学习 ia-32 并且在 32 位 Ubuntu 上一切正常,但是我切换到 64 位并开始使用标志 -m32 现在我无法在任何地方使用 DIV,无论寄存器的内容如何,​​它总是给我浮点异常...而且我确定我不会被零除。我正在使用 gcc 和 gdb。

这是最接近我的问题的问题:FPU IA-32 SIGFPE, Arithmetic exception

我试图将指令 fldcw 与 0x220 放在一起,但没有区别。

我的源代码:

GDB 日志:

0 投票
1 回答
166 浏览

c - 什么是“FPE_FLTSUB:下标超出范围”信号?

sys/signal.h中,a 的可能代码之一SIGFPEFPE_FLTSUB注释只是说“下标超出范围 -NOTIMP”。我在 OS X 10.9 上,但它似乎也在glibc 中

它不是标准的 IEEE 例外之一,那么它是什么,何时提出?

0 投票
1 回答
1623 浏览

c - gdb 共享库没有调试信息

我尝试调试一个程序以查找 beaglebone black debian 上的浮点异常位置我安装了 libc6 和 libc6-dbg 但仍然

看起来像这样。

我的调试目录是:搜索单独调试符号的目录是“/usr/lib/debug”

浮点异常看起来像这样

程序收到信号 SIGFPE,算术异常。0xb6de9a98 in raise () from /lib/arm-linux-gnueabi/libc.so.6

0 投票
1 回答
161 浏览

error-handling - 在 Fortran 运行时禁用 FPE 处理程序

我有一个用 Fortran 编写的库,它使用 Intel 的 MKL(静态链接)。我正在使用 ifort 进行编译和链接。
当我使用 -fpe0 选项将我的库(动态)与一些其他代码链接时,我在 MKL 中得到浮点异常,这似乎是英特尔已知的事情,无需担心。我认为这是由于一些投机性的处决。
但是,当其他人使用我的库时,他们可能会尝试使用 -fpe0 将他们的代码链接到我的库,这可能会导致麻烦。所以我想知道:有没有办法在运行时关闭 FPE 处理程序,当进入我的库并在返回时将其恢复到原始状态?
谢谢!

0 投票
2 回答
842 浏览

c - 带有 gcc 和无符号整数的 SIGFPE

我从用不同版本编译的可执行文件中得到了这种奇怪的行为gcc,都发出SIGFPE信号,最好的部分是我的代码中没有任何类型的浮点;如果有人能对此有所了解......我真的不知道从哪里开始调试这个,这太奇怪了,这个错误是由我从4.9to的所有 gcc 安装触发的6.0

这是重现问题的片段

这段代码的目的是重现问题,我知道它的逻辑并没有太大意义(取模部分)但clang通过了测试,没有版本gcc相同,我想知道为什么如果这种行为有技术解释。

0 投票
1 回答
761 浏览

assembly - 如何从汇编程序中的信号处理程序返回主线代码?

我一直在为 Linux 编写一个 NASM 程序。我希望能够从我为 SIGFPE 建立的信号处理程序中返回到正常的代码路径。精简后的示例代码是:

幻数是为了代码的紧凑性。

在 idiv 指令之前,esp 是0xffffcc00. 在信号处理程序的入口处, esp 是0xffffc52c. 相当多的东西已经放在堆栈上!有大量关于 __NR_sigreturn 的信息。我没有运气尝试使用它。处理程序中的一条ret指令只是让我回到 idiv 指令,这次没有处理程序。

关于我可以在.handle标签上做什么以安全返回主线的任何想法?

(我知道 sigaction 是可用的,但我想了解在这种情况下发生了什么。)

0 投票
1 回答
253 浏览

exception - 奇怪的浮点异常

在下面的代码片段中,我在运行时遇到了一个浮点异常。我相信异常发生在除以 r 的行。当我评论该行时,我没有收到任何错误。

同样非常奇怪的是,当我使用“-g”标志在 gcc 中编译(尝试调试)或者如果我在“if 语句”之后立即插入一些“cout 语句”,那么我在运行时不会得到任何浮点异常.

我已经盯着这段代码的屏幕看了好几个小时,也许我犯了一些愚蠢的错误..请帮忙!

更新:所以我能够通过将 1e-15 添加到有争议的行上的分母来解决问题..

我仍然不确定为什么 if 条件为 true .. for if(fabs(r)>1e-7) when r =0;