On 06/05/11 02:24, David Daney wrote:

> This happens because the libgcc unwinder cannot find unwinding 
> information for the PC at the point of the SIGSEGV.
> 
> However, we know that usually when we end up with a PC of zero, it is 
> because we called through a NULL function pointer.  In this case, we 
> could use the return address (perhaps with a slight adjustment to 
> compensate for the call instruction) to do the unwinding.
> 
> Would it make any sense to build something like this into libgcc?
> 
> Or if we want to do this do we need to patch up the register state 
> before executing the throw?

This isn't really an either/or.  It makes sense to robustify all
that code so it does not segv.

Andrew.

Reply via email to