[Lazarus] Old Lazarus code fail at runtime

José Mejuto joshyfun at gmail.com
Wed Dec 28 14:01:54 CET 2016


El 27/12/2016 a las 12:26, Chavoux Luyt via Lazarus escribió:
> Hi,
>
> I wrote a small program for Linux in a previous version of Lazarus which
> compiled and ran without problems before. I have now updated to fpc
> 3.0.0 and Lazarus 1.6 (backports version for Debian X86_64 Jessie). The
> code still compiles perfectly (it had a number of warnings, but these
> have now disappeared: e.g. unixfileutil.inc(6,51) Warning: Symbol
> "UTF8ToSys" is deprecated: "Use the function in LazUTF8 unit"), but it
> results in a runtime error
> "Project birds raised exception class 'External: SIGFPE'.
>
>  At address 7FFFEF8FC57F"
>
> when running the following code:
> procedure THoofVrm.OpenBtnClick(Sender: TObject);
> begin
>   OpenDlg.Execute;
> end;
>
> What is wrong with my code (and how should I change it)?
>

Hello,

Probably nothing wrong by your side, try to disable math exceptions 
before the call to .execute and reenable after it (C code does not trap 
math exceptions).

uses math;

var
   oldexcept: TFPUExceptionMask;

oldexcept := SetExceptionMask([exInvalidOp, exDenormalized, 
exZeroDivide, exOverflow, exUnderflow, exPrecision]);

OpenDlg.execute;

SetExceptionMask(oldexcept);

-- 



More information about the Lazarus mailing list