我有一個C++程序。程序中的某個地方(難以重現,但可重現),會導致一個浮點數設置爲NaN。由於涉及NaN的浮點操作導致NaN,因此這種擴展速度很快。在生成NaN浮點數時停止調試器
有什麼辦法可以設置編譯器(gcc 4.4)或debuger(gdb)停止浮點操作導致NaN?這將是非常有用的。
謝謝! Nathan
PS:這可能很重要:我在ubuntu linux 10.10下工作。
我有一個C++程序。程序中的某個地方(難以重現,但可重現),會導致一個浮點數設置爲NaN。由於涉及NaN的浮點操作導致NaN,因此這種擴展速度很快。在生成NaN浮點數時停止調試器
有什麼辦法可以設置編譯器(gcc 4.4)或debuger(gdb)停止浮點操作導致NaN?這將是非常有用的。
謝謝! Nathan
PS:這可能很重要:我在ubuntu linux 10.10下工作。
您可以啓用浮點異常 - 見glibc Control Functions - 那麼你會得到一個SIGFPE
當你NaN
值產生
您可以啓用浮點異常,只是在調試模式。檢查你的CRT,不知道你的CRT是如何完成的。 – 2011-03-22 16:06:14
另請參閱http://stackoverflow.com/questions/3615724/how-to-trace-a-nan-in-c – Riot 2015-10-02 15:33:54