GCC stack backtraces

Florian Weimer fweimer@redhat.com
Thu Aug 30 08:09:00 GMT 2012


On 08/29/2012 08:40 PM, Toon Moene wrote:
> On 08/29/2012 06:21 PM, Ian Lance Taylor wrote:
>
>> The DWARF reader calls malloc and is therefore not async-signal safe.
>
> It also is a problem if the crash in the program is due to overwriting
> the malloc heap administration (which easily occurs in Fortran if you
> overwrite bounds of allocatable arrays that can't be caught by
> bounds-check due to the wrong bounds being used inside a subroutine).
>
> I have had Fortran program tracebacks (as described by Janne) hanging
> due to this, which is hard to work around (euphemism).

I've seen hanging processes because a custom SIGSEGV crash handler 
called malloc (indirectly from <stdio.h> functions).  If we could 
provide a more robust crash handler, I'm sure that would improve matters 
in the long term.

The default std::unexpected handler for C++ could use this functionality 
as well, and so could Ada (but I'm not sure if you can get a callback 
when an unhandled exception is raised *before* the stack is unwound).

-- 
Florian Weimer / Red Hat Product Security Team



More information about the Gcc mailing list