http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55693



--- Comment #9 from Richard Henderson <rth at gcc dot gnu.org> 2013-01-15 
19:13:44 UTC ---

Unfortunately, the gdb trace in #c1 isn't enough to see what's

actually failing.



What *ought* to be happening is that the uninstrumented code path runs,

f1 makes two calls into the normal c++ runtime to (1) allocate the memory

for the thrown int, and (2) actually throw the exception.  Then we reach

a cleanup inside f2 that calls _ITM_commitTransactionEH which commits the

transaction (which will never fail, since we're in serial mode, since we're

running the uninstrumented code path).  Then we return from _ITM_cTEH and

continue propagation of the exception, reaching main.  This is exactly what

happens under linux.



What needs to happen at this point is a more detailed trace of f1 beginning

at the line containing the throw.  Given that EH is involved, this might

require "display/i $pc" and "stepi" to avoid losing control.



At the moment we have no idea even which runtime library is generating the

fault.

Reply via email to