我正在使用 java.lang.ProcessBuilder 使用java.lang.ProcessBuilder应用程序运行 c 语言代码。 如果有任何 output 和此 c 语言代码生成的错误,我可以通过process.getInputStream()和process.getErrorStr ...
我正在使用 java.lang.ProcessBuilder 使用java.lang.ProcessBuilder应用程序运行 c 语言代码。 如果有任何 output 和此 c 语言代码生成的错误,我可以通过process.getInputStream()和process.getErrorStr ...
我觉得这是一个愚蠢的问题,但我发现有关该主题的信息为零(不在此处也不在任何地方),因此问题如下: 上下文(您可能已经知道): SIGFPE异常和si_code字段 在 POSIX/Linux 中,我们有一种称为SIGFPE的特殊信号(尽管它的名字如此,但它同时用于浮点和整数算术错误)。 当我们使用 ...
我正在尝试从 C++ 程序中使用clEnqueueNDRangeKernel()启动某个 kernel 。 但是,它没有入队或返回错误,而是得到一个浮点异常信号 (SIGFPE)。 对于我无法 go 进入的 IP 原因,我很难提供触发此信号的示例。 但是 - 发生这种情况似乎没有任何正当理由。 是 ...
我需要编写一个单元测试,它应该总是触发除以零信号(SIGFPE),所以我可以测试和比较有/没有我的信号捕获模块会发生什么。 我的 Linux 信号捕获/恢复模块已经开发完毕,并且按预期工作。 当我为模块编写单元测试时,我遇到了一个小麻烦。 这些是 UT 代码(通过 GTest): 如果所有代 ...
目前我正在学习浮点异常。 我正在写一个带有函数的循环。 在该函数中,计算出的值等于0.5 。 随着循环的进行,输入值除以10 。 循环: 功能: 前几次迭代输出约为0.5 ,后来由于 CC 变为0 。 过了一会儿,这是程序的输出: Iteration 18, float result f ...
我有以下一段 C++ 代码: 我正在使用带有 -fp-trap=all 标志的 intel c++ 编译器。 通过 gdb 运行代码时,出现以下错误: 我真的不明白发生了什么。 划分似乎很明确。 ...
我正在规范化 3D 向量,并且 clang-9 生成的代码在sqrtf()上抛出一个 SIGFPE,即使我在调用它之前进行了测试。 请注意,我在启用 FP 异常的情况下运行。 哪个 clang-9 为: SIGFPE 显示此调用堆栈: SIGFPE 似乎在 __kernel_standard() ...
我喜欢在启用浮点异常的情况下运行我的代码。 我在 Linux 下使用: 到目前为止,一切都很好。 我遇到的问题是,有时编译器(我使用 clang8)决定使用 SIMD 指令进行标量除法。 好吧,如果这样更快,即使是单个标量,为什么不呢。 但结果是 SIMD 寄存器中未使用的通道可能包含零。 并且在执 ...
我正在努力尝试以可移植的方式设置 std::fenv 。 基于这个cppreference 页面,似乎fesetexceptflag(const std::fexcept_t*,int)应该帮助我做到这一点。 另一方面,我发现 GNU 也提供了feenableexcept(int)函数。 我的理解 ...
为什么SIGFPE用于整数算术异常,例如被零除,而不是为整数算术异常创建单独的信号或通常首先为算术异常命名信号? ...
我编写了一种用于MCU的算法,该算法执行两个并行电阻的表达式,然后对除法结果进行更多计算。 调试时,这些值没有意义; 它们太大,并且float var不会更新其初始值。 所以我去了https://www.onlinegdb.com/ ,在那里尝试了一部分算法。 执行代码时,它会启动非 ...
我正在处理大型的fortran代码,并且在使用快速选项进行编译(以便在大型数据库上执行测试)之前,通常会使用“警告”选项进行编译,以便检测并回溯所有问题。 因此,使用gfortran -fbacktrace -ffpe-trap=invalid,zero,overflow,underflo ...
我一直在尝试创建一个尽可能完整的Fraction类,以自己学习C ++,类和相关内容。 除其他外,我想确保某种程度的“保护”以防止浮点异常和溢出。 目的: 避免在普通操作中发现的算术运算中发生溢出和浮点异常,从而将时间/内存占用最少。 如果无法避免,则至少要进行检测。 另外 ...
我在我的测试套件中包含了对nan的检查 。 现在SIGFPE抛出以下行 指数的值约为-4000。 这当然非常接近于零,如果没有纳米检查,计算将继续为零。 信号SIGFPE现在被抛出。 我假设这是一个非正规数 (表示为NAN)。 如何区分除零和带负值非常大的指数? ...
我读到这个和这个 。 精髓是,如果一个南由包括fenv.h并启用所有浮点异常,但所产生的一个可以抛出SIGFPE FE_INEXACT通过feenableexcept(FE_ALL_EXCEPT & ~FE_INEXACT); 因此,代码改变了形式 至 这工作正常 ...
我在将子坐标从地理坐标转换为地心坐标的子例程中遇到浮点异常时遇到麻烦。 变量geo(x)作为纬度和经度对输入到子例程中。 变量xyz(x)作为分量的三元组输出( x格林威治子午线和赤道; y -90度经度和赤道; z北极)。 我意识到sind和cosd是非标准函数,但是它们通过适当的 ...
我尝试从Fortran的输入文件中读取浮点值。 为此,我使用以下代码: 使用 toto.txt 包含我的真实值的文本文件: 如果我像这样编译和执行,一切正常。 但是当我使用fpe选项编译和执行时,我遇到了一些麻烦。 我在阅读行有一个错误,看起来像: 我使用gfortran命令: gf ...
我正在尝试解决一个问题,在这个问题中,我需要找出组建两个成员的团队的可能方法。(注意:一个团队最多可以有两个人)编写此代码后,它可以正常工作,但在某些情况下测试用例显示浮点错误,我无法确切知道它是什么。 输入:第一行:测试用例数第二行:总人数 谢谢 ...
在下面的代码片段中,我在运行时遇到了一个浮点异常。 我相信例外发生在除以r的那一行。 当我评论该行时,我不会出错。 当我使用“ -g”标志在gcc中进行编译(尝试调试)时,或者如果我在“ if语句”之后立即插入一些“ cout语句”,那么在运行时我不会得到任何浮点异常,这也非常奇怪。 ...
我一直在用NASM for Linux编写程序。 我希望能够从为SIGFPE建立的信号处理程序中返回正常的代码路径。 精简的示例代码为: 幻数用于简化代码。 在idiv指令之前,esp是0xffffcc00 。 进入信号处理程序时,esp是0xffffc52c 。 堆放了很 ...