procedure TTimeMark.View(...);//один из методов объекта
- Код: Выделить всё
var
x:integer;
s:single;
...
s:=x;//тут получаю SIGFPE!!!!!!
Сделал программу для проверки бага из трёх строк всё ОК!!!
- Код: Выделить всё
var
x:integer;
s:single;
begin
readln(x);
s:=x; //всё ОК!!!
writeln(s);
readln;
end;
везде код одинаковый, кроме как передача параметров
в методе объекта (понятное дело, тут ebp ибо стэк)
fildl -12(%ebp)
fstps -28(%ebp)
в простой программке (прямая адресация)
fildl ..x
fstps ..s
потом перенёс в отдельную процедуру, получил так же код со стеком
fildl -4(%ebp)
fstps -8(%ebp)
но и там всё хорошо, т.е. ошибка происходит в методе объекта
вот, как лечить?
учимся правильно оформлять сообщения