Am Fri, 19 Jul 2013 11:47:41 +0200 schrieb Marco Leise <[email protected]>:
> Am Fri, 19 Jul 2013 11:10:04 +0200 > schrieb Marco Leise <[email protected]>: > > 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
