Exception handling on IRIX 6/O32

Rainer Orth ro@TechFak.Uni-Bielefeld.DE
Fri Jun 28 18:17:00 GMT 2002


I'm currently trying to debug the remaining testsuite failures with my IRIX 6
O32 ABI configuration.  The primary class of failures is due to exception
handling problems, both with and without sjlj exceptions.

After debugging with stabs-in-ELF proved to be close to impossible, I'm now
switching to DWARF-2 debugging (after some pain since gas 2.12.1 generates
invalid object files).  This allowed me to get at least some clue on the
cause of the failures.

At first, both unwind-dw2-fde.c unseen_objects and seen_objects were
uninitialized since I had forgotten to include crtbegin.o and crtend.o.
After fixing this, EH tests unfortunately still fail.

When debugging 

FAIL: g++.dg/eh/filter2.C execution test

I could trace this to _Unwind_Find_FDE returning NULL in the following call
chain:

ex_test -> __cxa_throw -> _Unwind_RaiseException -> uw_init_context_1 ->
uw_frame_state_for -> _Unwind_Find_FDE

Being not at all familiar with the EH datastructures, I'm somewhat at a
loss how to procede from here.  If may be that CIEs/FDEs are not emitted
correctly or that something else is wrong.  Unfortunately, I cannot make
much sense of readelf -w/dwarfdump -f output, so I'll probably need much
guidance to get this fixed.

	Rainer



More information about the Gcc-bugs mailing list