![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Invalid floating point operation [D7, WinXP]
Pul © (2004-08-10 15:44:00)Есть функция, работает нормально и правильно.
После декларации новой локальной переменной начинает вылетать с подобной ошибкой. С чем это может быть связано?
GrayFace (2004-08-11 15:08:00) [1]В функции асм есть?
Ты выложи только эту функцию.
Наверняка, проблемы со стеком. Вместо TRealArray сделай array of real - ИМХО, в этом дело.
Pul (2004-08-11 12:07:00) [2]
> Sergey Kaminski © (11.08.04 02:44) [21]
Тебе выложить 100 килобайт исходника, это можно, так ты же сам меня и пошлешь. А в предыдущем посте уже было сказано, что проблема решена. Остался только открытым вопрос о ее причинах.
Большинство в этой ветке стараются помочь, за что им огромное спасибо, а ты только время отнимаешь.
> Fay © (11.08.04 05:28) [22]
type
TMatrix = array of Extended;
TXMatrix = array of TMatrix;
TRealArray = array of Extended;
TCol = record
...
// много полей, поэтому не привожу
...
end
TCols = array of TCol;
procedure Discrim(AY: TCol; AVars: TCols);
var
SumW,DetB,DetSigmaWTMP,MaxGk,E,SumE,TmpE,SumResProc,STmp,STmp2,DetL,DetU,SumL,SumC: Extended;
i,j,k,ID,ID1,ID2,m,KK: Integer;
Groups,SumWk,Means,WilksL,F,Sig,Pk,BConst,PredictGr1,PredictGr2,P1,P2,PGkXTmp,SMove,CConst,PerVar,CumVar,CanCorVar,CanWi lksL,CanChi2,CanSig: TRealArray;
GrMeans,SigmaW,SigmaWTMP,SigmaB,B,Tmp,Tmp2,Chi2,Gk,PGkX,ClassRes,ClassResProc,S_W,R,RR,L,U,A,G,LM,V,C,D,S,StructR: TMatrix;
Sigma,SigmaTmp1,SigmaTmp2: TXMatrix;
IsFirst: Boolean;
begin
...
try
Func1(...);
except
raise;
end;
end;
ексепшн вылетал в функции Func1
а после того, как поставил try .. except .. end - даже в секцию except не входит.
Как это можно объяснить, как только не проблемы со стеком или глюк.
Если проблемы со стеком, посоветуйте как искать подобную ошибку
Fay (2004-08-11 05:43:00) [3]Вот и мне так кажется 8)
Alx2 (2004-08-11 05:34:00) [4]Скорее всего, стэк битый. Надо смотреть кто его грохает.
Fay (2004-08-11 05:28:00) [5]покажи объявление функции и секцию VAR
Sergey Kaminski (2004-08-11 02:44:00) [6]Найден еще один ГЛЮК как таковой.
Без кода,без доказательств без ничего вообще. Т.е., глюк как таковой, глюк в себе.
Pul (2004-08-10 18:58:00) [7]Вот это прикол
поставил вызов одной функции в
try
...
except
raise exception.Create('...');
end;
и exception вообще не вылетает.
Глюки?
Anatoly Podgoretsky (2004-08-10 17:53:00) [8]Кривые эксперты/компоненты
Pul (2004-08-10 17:48:00) [9]
> Андрей Сенченко © (10.08.04 17:22) [16]
Нет, не перекрываю
> Ega23 © (10.08.04 17:23) [17]
Result := a;
Ega23 (2004-08-10 17:23:00) [10]if result>1 then result:=1;
Предыдущая строчка какая?
Андрей Сенченко (2004-08-10 17:22:00) [11]А при этой самой редекларации Ты случаем не перекрываешь имен глобальных переменных ?
Pul (2004-08-10 17:17:00) [12]
> ALS © (10.08.04 16:53) [13]
Range checking и Overflow checking включены
> Не должно быть непроинициализированных переменных
Я же уже в [5] указал, что
ошибка возникает не при работе с этой переменной, а просто после ее декларации.
Pul (2004-08-10 17:11:00) [13]
> Рамиль © (10.08.04 16:45) [12]
> Найди на какой строчке ошибка возникает.
Ты будешь смеяться
if result>1 then result:=1;
на этой строке останавливается выполнение с указанной выше ошибкой
ALS (2004-08-10 16:53:00) [14]Добавление декларации локальной переменной изменяет распределение памяти в стеке процедуры.
Включи:
Project-Options-Compiler-Range checking
Project-Options-Compiler-Warnings
Не должно быть непроинициализированных переменных
Рамиль (2004-08-10 16:45:00) [15]
> думаешь поможет?
> я в исходник добавляю всего лишь декларацию переменной
Найди на какой строчке ошибка возникает.
Pul (2004-08-10 16:36:00) [16]
> Ega23 © (10.08.04 16:08) [10]
> F7 пользоваться умеешь? :о)
думаешь поможет?
я в исходник добавляю всего лишь декларацию переменной
и при чем здесь F7?
может я просто не догоняю, объясни.
Ega23 (2004-08-10 16:08:00) [17]F7 пользоваться умеешь? :о)
Pul (2004-08-10 16:06:00) [18]
> Ega23 © (10.08.04 15:58) [8]
> Около 100 килобайт исходника?
>
> ОДНА ФУНКЦИЯ??????????
Нет, не одна, просто все остальные вызываются из нее, а суммарно это примерно 100 кило
Ega23 (2004-08-10 15:58:00) [19]Около 100 килобайт исходника?
ОДНА ФУНКЦИЯ??????????
Pul (2004-08-10 15:55:00) [20]>> Ega23 © (10.08.04 15:53) [6]
Около 100 килобайт исходника?