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