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