GktD: exceptions in handlers cause segfaults.

Marco Leise Marco.Leise at gmx.de
Fri Jul 19 03:38:45 PDT 2013


Am Fri, 19 Jul 2013 11:47:41 +0200
schrieb Marco Leise <Marco.Leise at gmx.de>:

> Am Fri, 19 Jul 2013 11:10:04 +0200
> schrieb Marco Leise <Marco.Leise at gmx.de>:
> 
> dav1d gave me advice on rebuilding druntime with debug symbols.
> That lead me to this "GitHub" stack trace:
> 
> https://github.com/D-Programming-Language/druntime/blob/v2.063.2/src/rt/deh2.d#L104
> https://github.com/D-Programming-Language/druntime/blob/v2.063.2/src/rt/deh2.d#L201
> https://github.com/D-Programming-Language/druntime/blob/v2.063.2/src/rt/deh2.d#L246
> ... back into my code where I throw the exception.

dav1d also told me to watch the DConf 2013 presentation of
Higgs where a similar problem with asserts in JIT generated
code occurred. It turns out that what Walter explained is the
key here, too. All my libraries are compiled without frame
pointers, so the simple stack unwinding that D uses fails
there. I recompiled glib and gtk+ with -fno-omit-frame-pointer
specifically and from now on exception handling works again.

Additional info on stack unwinding in the absence of a frame
pointer:
http://www.yosefk.com/blog/getting-the-call-stack-without-a-frame-pointer.html

-- 
Marco



More information about the Digitalmars-d-learn mailing list