Debug C++代码:首先捕获NaN外观

Tho*_* W. 6 c++ debugging nan

是否有一种简单的方法来检查调试器中的C++代码,以便首次出现NaN值?

Tho*_* W. 7

答案如下:https://stackoverflow.com/a/5394095/1326595

只是包括

#include <fenv.h>
Run Code Online (Sandbox Code Playgroud)

然后在代码中添加以下行:

feenableexcept(FE_INVALID | FE_OVERFLOW);
Run Code Online (Sandbox Code Playgroud)

调试器能够捕获信号并显示NaN的第一次出现.


Rom*_*jev 5

根据 IEEE 标准,以下条件适用falseNaN's:

val == val
Run Code Online (Sandbox Code Playgroud)

您可以使用它来触发断言或软件断点,但要注意编译器优化。可能,在调试版本中它不会被优化掉