Ryan Mansfield(deleted)
02/10/2014 9:17 AM
post108695
|
On 14-02-05 03:50 AM, George Refseth wrote:
> Is there news on this issue? Stepping through the assembler I see that after a lot of looking for something to catch
the exception, the code invariably terminates. Sample backtrace below:
>
> Thread [1] (Suspended: Signal 'SIGABRT' received. Description: Aborted.)
> 8 SignalKill() 0xb033e2c1
> 7 raise() 0xb032cf4e
> 6 abort() 0xb032b248
> 5 __gnu_cxx::__verbose_terminate_handler() ../../../../../libstdc++-v3/libsupc++/vterminate.cc:95
0xb8252265
> 4 __cxxabiv1::__terminate() ../../../../../libstdc++-v3/libsupc++/eh_terminate.cc:38 0xb824fa15
> 3 std::terminate() ../../../../../libstdc++-v3/libsupc++/eh_terminate.cc:48 0xb824fa6f
> 2 __cxxabiv1::__cxa_throw() ../../../../../libstdc++-v3/libsupc++/eh_throw.cc:84 0xb824fcde
>
> Are there missing pieces to this puzzle? compile flags, libs, or is this a known bug?
Yes, it's a known issue. The unwinder needs to be able to find the
unwind information which means that all binaries (exec and shared
libraries) need to use the same registration functions. With gcc 4.8,
the register function is now hidden so each binary gets it's own copy,
and the unwinder can't find it. Emitting PT_GNU_EH_FRAME segments
should address this issue, but the unwind gear relies on
dl_iterate_phdr. However, dl_iterate_phdr isn't in 6.5.0. I've been
meaning to work on a solution for 6.5.0.
Regards,
Ryan Mansfield
|
|
|