[fpc-pascal] SIGSEGV unknown reason

Alexander Todorov alexx.todorov at gmail.com
Tue Jan 30 17:09:48 CET 2007


Hello,
I have a program written in Delphi and now it is compiled with FPC
2.0.4 and running on Linux. I am having troubles to find what is
causing it to break.
The error I get is EAccessViolation.

A short gdb backtrace is provided below. What makes me puzzle is
SYSTEM_RECORDRTTI.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1518343248 (LWP 12918)]
0x08057c05 in SYSTEM_RECORDRTTI$POINTER$POINTER$TRTTIPROC ()
(gdb) backtrace
#0  0x08057c05 in SYSTEM_RECORDRTTI$POINTER$POINTER$TRTTIPROC ()
(gdb) continue
Continuing.

Breakpoint 1, 0x080554a2 in fpc_raiseexception ()
(gdb) backtrace
#0  0x080554a2 in fpc_raiseexception ()
#1  0x0808884d in SYSUTILS_RUNERRORTOEXCEPT$LONGINT$POINTER$POINTER ()
#2  0x08058941 in SYSTEM_HANDLEERRORADDRFRAME$LONGINT$POINTER$POINTER ()
#3  0x080603aa in SYSTEM_SIGNALTORUNERROR$LONGINT$PSIGINFO$PUCONTEXT ()
#4  0x080599fc in SYSTEM_LINUX_RESTORE ()
(gdb) continue
Continuing.

Breakpoint 1, 0x080554a2 in fpc_raiseexception ()
(gdb) backtrace
#0  0x080554a2 in fpc_raiseexception ()
#1  0x0808884d in SYSUTILS_RUNERRORTOEXCEPT$LONGINT$POINTER$POINTER ()
#2  0x08058941 in SYSTEM_HANDLEERRORADDRFRAME$LONGINT$POINTER$POINTER ()
#3  0x080589e8 in SYSTEM_HANDLEERRORFRAME$LONGINT$POINTER ()
#4  0x08058a14 in SYSTEM_HANDLEERROR$LONGINT ()
#5  0x0805ad2b in SYSTEM_CONCAT_TWO_BLOCKS$PMEMCHUNK_VAR$PMEMCHUNK_VAR ()
#6  0x0805add0 in SYSTEM_TRY_CONCAT_FREE_CHUNK_FORWARD$PMEMCHUNK_VAR ()
#7  0x0805adea in SYSTEM_TRY_CONCAT_FREE_CHUNK$PMEMCHUNK_VAR$$PMEMCHUNK_VAR ()
#8  0x0805b40b in SYSTEM_SYSFREEMEM_VAR$PMEMCHUNK_VAR$$LONGINT ()
#9  0x0805b45f in SYSTEM_SYSFREEMEM$POINTER$$LONGINT ()
#10 0x0805a657 in SYSTEM_FREEMEM$POINTER$$LONGINT ()
#11 0x0804b9cb in fpc_ansistr_decr_ref ()
#12 0xa57fdb60 in ?? ()

Next entries are from my program:

#13 0x080f563d in TNCONNECTION__SENDCOMMAND (ACOMM=0x9a0c7488,
this=0xa7a7f178) at nconnection.pas:170
#14 0x080f5a05 in TNCONNECTION__SENDSERIAL (AOBJ=0x9a0a14c8,
ACOMMANDID=NCERROR, this=0xa7a7f178) at nconnection.pas:224

.... continues ...


Any hints what may cause this backtrace? I suspect assignment or
comparisson of variant and/or strings because they are used havily
under Delphi.

Any comments are welcome.



More information about the fpc-pascal mailing list