[Lazarus] External SigFPE
dgcoventry at gmail.com
Mon Jul 8 16:10:08 CEST 2013
Thanks, Martin, Ludo,
Sorry for taking so long to respond. I have rewritten a large section of my
code which accounts for the delay.
On 29 June 2013 01:01, Martin <lazarus at mfriebe.de> wrote:
> Maybe memory got corrupted at some point before, then errors can happen
> at seemingly random locations.
I have had issues with using TStringLists in the past, specifically with
passing a TStringList as an argument to (or returning from) a function.
So I have rewritten my code to try to avoid doing this.
Basically I am reading a large Blob from a (Firebird) Database into a
TStringList which has been declared as a global variable. This is the only
This list contains commands for a vector graphic which is rendered, first
on a Image buffer TBitmap and then copied (CopyRect) onto the Canvas of a
The first pass works fine. The GlobalList is cleared and the Blob loaded
and then rendered.
Selecting another Database entry also works fine: The globallist is cleared
and reloaded from the new database entry, the scale is recalculated and the
drawing is rendered correctly.
I can pan around the drawing as well.
However, I am using the Mousewheel to zoom in and out to enlarge portions
of the drawing and this is where I am getting the SIGFPE.
After my using the Mousewheel (up or down), the application performs the
zoom without error, but, on the first movement of the mouse, the SIGFPE
Check your dbg setup
> use all avaailable compiler checks
> -gh (heaptrace/linking)
> What does the stack window show?
0042A8D5 751a jne 0x42a8f1
0042A8D7 8b450c mov 0xc(%ebp),%eax
0042A8DA a3b0e26700 mov %eax,0x67e2b0
0042A8DF 8b4508 mov 0x8(%ebp),%eax
0042A8E2 a3b4e26700 mov %eax,0x67e2b4
0042A8E7 c705e0e2670001000000 movl $0x1,0x67e2e0
0042A8F1 c9 leave
0042A8F2 c20c00 ret $0xc
0042A8F5 0000 add %al,(%eax)
0042A8F7 0000 add %al,(%eax)
0042A8F9 0000 add %al,(%eax)
0042A8FB 0000 add %al,(%eax)
0042A8FD 0000 add %al,(%eax)
0042A8FF 005589 add %dl,-0x77(%ebp)
0042A902 e583 in $0x83,%eax
0042A904 ec in (%dx),%al
0042A905 64895d9c mov %ebx,%fs:-0x64(%ebp)
0042A909 8975a0 mov %esi,-0x60(%ebp)
0042A90C 897da4 mov %edi,-0x5c(%ebp)
0042A90F 8945f4 mov %eax,-0xc(%ebp)
0042A912 8955fc mov %edx,-0x4(%ebp)
0042A915 894df8 mov %ecx,-0x8(%ebp)
0042A918 d9ee fldz
<----------------------------------------- Exception raised here.
0042A91A dd0580e26700 fldl 0x67e280
0042A920 ded9 fcompp
0042A922 dfe0 fnstsw %ax
0042A924 9e sahf
0042A925 0f841b010000 je 0x42aa46
0042A92B 8b450c mov 0xc(%ebp),%eax
0042A92E a300e36700 mov %eax,0x67e300
0042A933 8b4508 mov 0x8(%ebp),%eax
0042A936 a304e36700 mov %eax,0x67e304
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Lazarus