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.