Ошибка.... Invalid floating operation (то есть, то нет)

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ошибка.... Invalid floating operation (то есть, то нет)

Сообщение VAshot » 11.02.2009 15:33:36

есть кусок кода:
Код: Выделить всё
    try
      ShowMessage('if');
      if round(indexForMaxW*1.3) > countPoint then begin
        basicDataFromFile[i-1].endTimeIndex:=Min(countPoint, basicDataFromFile[i-1].realMaxIndexTimeForM);
      end
      else begin
        basicDataFromFile[i-1].endTimeIndex:=Min(round(indexForMaxW*1.3),basicDataFromFile[i-1].realMaxIndexTimeForM);
      end;
    except
      on E: Exception do begin
        ShowMessage(E.Message +#13#10+'endTimeIndex');
      end;
    end;


при выполнении всё работает, но стоит убрать совершенно не нужный "ShowMessage('if');" - вылетает (исключение, обрабатывается) с ошибкой: "Invalid floating operation".

При одинаковых исходных условиях. Данное "try" вложено в другое "try".

WinXP, 0.9.25 от 21.11.2008, 12763
Аватара пользователя
VAshot
постоялец
 
Сообщения: 128
Зарегистрирован: 01.11.2007 12:31:21
Откуда: Пермь

Re: Ошибка.... Invalid floating operation (то есть, то нет)

Сообщение bw » 11.02.2009 17:02:15

Сталкивался с такой-же проблемой (2.2.0). Не помню как поборол, и сейчас не получается повторить :-).
Может будет достаточно оставить on-begin-end или попробуй вписать "пустой метод" в этот on-begin-end. Это проблема компилятора, но как я сказал, сейчас мне не удается её повторить. Видимо требуются специфические условия.

p.s. В моем случае, ошибка возникала именно в except-on. Но сейчас не помню, возможно даже в момент компиляции, а не выполнения. Задача состояла в пропускании (игнорировании) одного исключения, т.е. было, что-то вроде on E: MyException do;.

..bw
Аватара пользователя
bw
постоялец
 
Сообщения: 359
Зарегистрирован: 01.12.2005 11:36:23
Откуда: Усть-Илимск

Re: Ошибка.... Invalid floating operation (то есть, то нет)

Сообщение Logo » 11.02.2009 18:16:00

Иногда встречается проблема, что компилятор, вроде как, пропускает участок кода. Сегодня ночью долго бился с подобной проблемой, пока не вставил в проблемную точку Sleep(100). Выдавало, что какой-то мифический объект инвалид, после чего лезло в чужую область памяти.

Код: Выделить всё

try
    LoadMain; {3 steps}
     tbsUserMainData.TabVisible := True;
    Application.ProcessMessages;
     tbsUserLawData.TabVisible := True;
    Application.ProcessMessages;

Sleep(100);

    LoadAddresses; {10 steps}
     tbsUserAddress.TabVisible := True;
    Application.ProcessMessages;

С причиной, пока, не разобрался :(

Еще встречались случаи, где результат функции присваивал переменной, а в if - then использовал переменную, а не функцию. Начинало стабильно работать.
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: Ошибка.... Invalid floating operation (то есть, то нет)

Сообщение serg_iv » 11.02.2009 18:30:23

вылетает (исключение, обрабатывается) с ошибкой: "Invalid floating operation".

А массив за пределы диапазона не вылазит?
serg_iv
постоялец
 
Сообщения: 276
Зарегистрирован: 15.10.2005 18:45:46
Откуда: Миасс

Re: Ошибка.... Invalid floating operation (то есть, то нет)

Сообщение VAshot » 11.02.2009 20:05:04

serg_iv писал(а):
вылетает (исключение, обрабатывается) с ошибкой: "Invalid floating operation".

А массив за пределы диапазона не вылазит?

Нет конечно.

Logo писал(а):пока не вставил в проблемную точку Sleep(100).

А мне вот "слип" не помог, и операция арифметическая тоже...

Что бы такого придумать, кроме ShowMessage?

Перейти на другую версию (что подразумевает уже UTF8) не вышло пока, какие-то глюки с мерцанием в 9.26 (при прорисовке) формы, когда пользую RxLookUp... (после сворачивания выпадающего списка).
Аватара пользователя
VAshot
постоялец
 
Сообщения: 128
Зарегистрирован: 01.11.2007 12:31:21
Откуда: Пермь

Re: Ошибка.... Invalid floating operation (то есть, то нет)

Сообщение Logo » 11.02.2009 21:36:50

VAshot писал(а):Перейти на другую версию (что подразумевает уже UTF8) не вышло пока, какие-то глюки с мерцанием в 9.26 (при прорисовке) формы, когда пользую RxLookUp... (после сворачивания выпадающего списка).

Да я на последней сборке fpc-2.2.3 и Lazarus 0.9.27.
Еще одна примета у меня, глюк начал проявляться, когда на TPageControl количество TTabSheet достигает 5. При этом пятая страница, при открытии, может не прорисовываться и все табы исчезают, перейти больше ни на какую страницу не можно даже внешним вызовом, например, кнопкой. При чем страницы после пятой работают нормально. Закономерность даного глюка не уловил, проявляется не всегда, моделировал отдельно от проекта - то же самое. Есть какая то взаимосвязь с описаной выше проблемой, если начинает лезть, одно и другое может возникнуть, но может быть не в одно время. Если вырезать все компоненты на форме, сохранить проект, а потом вставить обратно компоненты, - проблема исчезает до определенного периода.
Если трассировать дебагером, то все проходит без проблем. Запускаю приложение - глюк :(

Я не думаю, что это проблема TPageControl, мне кажется, что особенность или ошибка компилятора.

У кого еще, возникло что либо подобное? Дайте инфу, что бы сориентироваться где искать.

Проверено на fpc 2.2.2, fpc-2.2.3, Lazarus 0.9.26, Lazarus 0.9.26.1, Lazarus 0.9.27, x86_64, GTK-2, QT-4. На 32 разряда не проверял.
На KDE-4 и Gnom проявляется реже. На быстрых оконных менеджерах (IceWM, Xfce-4, Window Maker) гораздо чаще.
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: Ошибка.... Invalid floating operation (то есть, то нет)

Сообщение alexs » 11.02.2009 22:44:27

VAshot писал(а):Перейти на другую версию (что подразумевает уже UTF8) не вышло пока, какие-то глюки с мерцанием в 9.26 (при прорисовке) формы, когда пользую RxLookUp

Там есть лишние прорисовки
я сейчас работаю над этим - провяляется в винде
а суть в следующем - если лукапный список вызывается из формы которая сама модальная - то после закрытия списка - у формы стирается заголовок, хотя если после этого форму заголвоком вытащить за пределы экрана а потом опять вернуть на место - то заголовок востанавиливается. вобщем мистика. я думал принудительно её заставить отрисоваться - не получилось.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Ошибка.... Invalid floating operation (то есть, то нет)

Сообщение VAshot » 15.02.2009 14:49:44

alexs писал(а):я думал принудительно её заставить отрисоваться - не получилось.

Э... не уловил, т.е. белое мерцание вокруг элементов на форме после закрытия "лукапа" - это Ваша неудачная попытка решить вопрос с заголовком?
Аватара пользователя
VAshot
постоялец
 
Сообщения: 128
Зарегистрирован: 01.11.2007 12:31:21
Откуда: Пермь

Re: Ошибка.... Invalid floating operation (то есть, то нет)

Сообщение alexs » 16.02.2009 00:45:08

ага - именно так - там льшный вызов есть owner.repaint - дословно не помню. надо фиксить.
в линухе это не проявляется.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Ошибка.... Invalid floating operation (то есть, то нет)

Сообщение XProger » 17.02.2009 09:26:05

Возможно не оно, но всё же... бойся -INF, +INF, NAN значений и прочих неопределённостей/неназначенностей float'ов при выполнении над ними каких-то операций.
Аватара пользователя
XProger
новенький
 
Сообщения: 44
Зарегистрирован: 13.08.2007 02:52:28
Откуда: Москва

Re: Ошибка.... Invalid floating operation (то есть, то нет)

Сообщение Logo » 23.02.2009 09:58:05

Logo писал(а):Да я на последней сборке fpc-2.2.3 и Lazarus 0.9.27.
Еще одна примета у меня, глюк начал проявляться, когда на TPageControl количество TTabSheet достигает 5. При этом пятая страница, при открытии, может не прорисовываться и все табы исчезают, перейти больше ни на какую страницу не можно даже внешним вызовом, например, кнопкой. При чем страницы после пятой работают нормально. Закономерность даного глюка не ловил, проявляется не всегда, моделировал отдельно от проекта - то же самое.
...
На KDE-4 и Gnom проявляется реже. На быстрых оконных менеджерах (IceWM, Xfce-4, Window Maker) гораздо чаще.

Вы конечно будете смеяться, но перешел на SuSE 11.1 и все проблемы исчезли :D
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Рейтинг@Mail.ru