Подтвердить что ты не робот

Остановка отладчика при получении числа с плавающей запятой NaN

У меня есть программа на С++. Где-то в программе (трудно воспроизвести, но воспроизводимо), caclculation приводит к тому, что плавающий beeing установлен на NaN. Поскольку операция с плавающей запятой, включающая NaN, приводит к NaN, это быстро распространяется.

Можно ли каким-либо образом настроить компилятор (gcc 4.4) или debuger (gdb), чтобы остановить, когда операция с плавающей запятой приводит к NaN? Это было бы очень полезно.

Спасибо! Натан

PS: Это может иметь значение: я работаю под ubuntu linux 10.10.

4b9b3361

Ответ 1

Вы можете включить исключения с плавающей запятой - см. glibc Control Functions - тогда вы получите SIGFPE, когда ваше значение NaN производства