[fpc-devel] fpc_popaddrstack ()

dev.dliw at gmail.com dev.dliw at gmail.com
Sat Sep 7 12:49:11 CEST 2013


Hi,
Improving my bindings for CEF3, I often have crashes with the following 
message:

Program received signal SIGSEGV, Segmentation fault.
0x00000000004ba41a in fpc_popaddrstack ()

The backtrace looks similar every time:

#0  0x00000000004ba3aa in fpc_popaddrstack ()
#1  0x00007fffef704a28 in ?? ()
#2  0x00000000008003f5 in CEF_REQUEST_HANDLER_ON_BEFORE_RESOURCE_LOAD 
(SELF=0x7fffef6f90c8, BROWSER=0x7fffac0608a0, FRAME=0x7fffac060790, 
REQUEST=0x7fffac060590)
    at ../cef3own.pas:2180

#2 is a callback, called by the C side of the CEF3 wrapper from an arbitrary 
thread
[the actual callback function differs, so the above is only an example]

#1 is unresolved every time
#0 is fpc_popaddrstack () every time, too

The callback functions themselves don't do anything special.
Most of the time the parameters [Pointers] are "resolved" to descendants of 
TInterfacedObject, a certain method is called and its result is passed back.


Does anybody have an idea what the reason could be?

1. Could it be a wrong calling convention?
2. Is it a problem to call methods of TObject on different threads without any 
kind of lock?
[ Data of the object itself is neither read nor written within these methods ]
3. Can this be related to the use of the "With" statement?

Thanks in advance,
d.l.i.w



More information about the fpc-devel mailing list