生成NaN浮点数时停止调试器

Nat*_*han 13 c++ floating-point gdb nan

我有一个C++程序.在程序的某处(难以重现,但可重现),caclculation导致浮动设置为NaN.由于涉及NaN的浮点运算导致NaN,因此传播速度很快.

有什么方法可以设置编译器(gcc 4.4)或debuger(gdb)在浮点运算导致NaN时停止?那将非常有用.

谢谢!弥敦道

PS:可能很重要:我在ubuntu linux 10.10下工作.

Eri*_*rik 16

您可以启用浮点异常-看glibc的控制功能 -那么你会得到一个SIGFPE当你的NaN价值产生

  • feenableexcept(FE_INVALID | FE_OVERFLOW); 诀窍,谢谢! (11认同)