Помощь - Поиск - Пользователи - Календарь
Полная версия: Обработка ошибок Fpc Linux
Форум «Всё о Паскале» > Pascal, Object Pascal > 32 битные компиляторы
trminator
Код

program test_err;
uses sysutils; // для работы try... except
var a, b : double;
begin
   repeat
       try
               readLn(a, b);
               writeLn(a / b) // Попытка выполнить деление. А делить будем на ноль...
       except
               writeLn('Err found!!!')
       end;
   until false
end.


Вот такая программа ловит ошибку ровно один раз. На второй раз валится...
Код

$ fpc test_err.pas -S2 // Компилируем в режиме совместимости с ObjectPascal
$ ./test_err
2 0
Err found!!!
2 0
Floating point exception


Самое интересное, что на домашнем компьютере (SuSE 9.0 ядро 2.4.<что-то-из-последних> или на любом компе с Win*) работает. Но стабильно падает на SuSE 9.1 (ядро 2.6.5). Компилятор в обоих случаях - fpc 1.0.10

Еще более интересный факт: берем программу, скомпилированную и стабильно работающую "дома" и тащим на этот компьютер. Валится.
Берем программу, скомпилированную на этом "глючном" компе, тащим домой. Работает.
От библиотек зависеть, по идее, не должно - библиотеки линкуются статически
Код

$ ldd ./test_err
       not a dynamic executable



Кто-нибудь может предположить, в чем проблема?
У кого стоит linux ядер 2.6, прогоните, пожалуйста, эту программу!
sandman
trminator
Цитата
У кого стоит linux ядер 2.6, прогоните, пожалуйста, эту программу!

у меня сейчас 2.6.7. фпц выкачаю - прогоню smile.gif
Romtek
У меня в лине ядро 2.4.x бесконечно вычисляет, проблем не было (fpc 1.0.10)
trminator
sandman, как ядрышко? Прогнать не пробовал?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.