Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 6442
Последний выпуск: 19.06.2015

Откуда берется плавающая точка в Linux?

2.1K
25 декабря 2015 года
disputant
95 / / 28.05.2007
Странная проблема.
Большая, вернее, длинная задача. Масса вычислений, но все - целочисленные. Работала на VC++. Из-за долготы работы решено было перебросить ее на linux-сервер, пусть себе потихоньку считается. Переброшена, скомпилирована, запущена. Через достаточно длительное время (из-за чего просто так не отладишь) слетает с воплем "Исключение в операции с плавающей точкой".
При этом на VC++ это место проходит совершенно спокойно.
Я не могу назвать себя специалистом в linux и gcc, так что обращаюсь с вопросом - куда надо посмотреть, что отследить (может, какие ключи компиляции использовать), чтоб понять, что происходит.

Ни одного слова double или float в исходниках нет. Не подключен даже math.h :)

g++ --ver говорит:

Используются внутренние спецификации.
Целевая архитектура: x86_64-redhat-linux
Параметры конфигурации: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Модель многопоточности: posix
gcc версия 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
395
25 декабря 2015 года
grgdvo
323 / / 04.07.2007
Похоже на проблему портирования кода на другую платформу и ОС.
Смотрите краткое описание здесь, SIGFPE вызывается и для целочисленных операций.
https://ru.wikipedia.org/wiki/SIGFPE
Ищите в коде ошибки переполнения, деления на 0 и т.п.
247
26 декабря 2015 года
Ramon
1.1K / / 16.08.2003
Начните с команд list и bt в gdb.

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог