-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I can catch it in -forwardInvocation:, so it appears that the problem arises only when I try to go above that frame.
I can't put a breakpoint on parse_lsda_header, it remains in a PENDING state even after running. When I put a breakpoint on __gnu_objc_personality_v0, then I get the following behavior (I put a try/catch in do_throw(), -forwardInvocation: and main()): (gdb) r Starting program: /export/home/diablos/excp_fail/obj/excp_fail warning: Lowest section in /lib/amd64/libpthread.so.1 is .dynamic at 00000000000000b0 warning: Lowest section in /lib/amd64/librt.so.1 is .dynamic at 00000000000000b0 warning: Lowest section in /lib/amd64/libdl.so.1 is .dynamic at 00000000000000b0 throwing Breakpoint 1, 0xfffffd7ffdc58bb0 in __gnu_objc_personality_v0 () from /usr/lib/64/libobjc.so.2 (gdb) c Continuing. Breakpoint 1, 0xfffffd7ffdc58bb0 in __gnu_objc_personality_v0 () from /usr/lib/64/libobjc.so.2 (gdb) c Continuing. Breakpoint 1, 0xfffffd7ffdc58bb0 in __gnu_objc_personality_v0 () from /usr/lib/64/libobjc.so.2 (gdb) c Continuing. Breakpoint 1, 0xfffffd7ffdc58bb0 in __gnu_objc_personality_v0 () from /usr/lib/64/libobjc.so.2 (gdb) c Continuing. Breakpoint 1, 0xfffffd7ffdc58bb0 in __gnu_objc_personality_v0 () from /usr/lib/64/libobjc.so.2 (gdb) c Continuing. Breakpoint 1, 0xfffffd7ffdc58bb0 in __gnu_objc_personality_v0 () from /usr/lib/64/libobjc.so.2 (gdb) c Continuing. Breakpoint 1, 0xfffffd7ffdc58bb0 in __gnu_objc_personality_v0 () from /usr/lib/64/libobjc.so.2 (gdb) c Continuing. Breakpoint 1, 0xfffffd7ffdc58bb0 in __gnu_objc_personality_v0 () from /usr/lib/64/libobjc.so.2 (gdb) c Continuing. 2010-06-28 15:27:21.798 excp_fail[14887] Caught <NSException: 0x497590> NAME:NSGenericException REASON:test exception INFO:(nil) in do_throw(), rethrowing... Breakpoint 1, 0xfffffd7ffdc58bb0 in __gnu_objc_personality_v0 () from /usr/lib/64/libobjc.so.2 (gdb) c Continuing. Breakpoint 1, 0xfffffd7ffdc58bb0 in __gnu_objc_personality_v0 () from /usr/lib/64/libobjc.so.2 (gdb) c Continuing. Breakpoint 1, 0xfffffd7ffdc58bb0 in __gnu_objc_personality_v0 () from /usr/lib/64/libobjc.so.2 (gdb) c Continuing. Breakpoint 1, 0xfffffd7ffdc58bb0 in __gnu_objc_personality_v0 () from /usr/lib/64/libobjc.so.2 (gdb) c Continuing. 2010-06-28 15:27:25.242 excp_fail[14887] Caught <NSException: 0x497590> NAME:NSGenericException REASON:test exception INFO:(nil) in - -forwardInvocation:, rethrowing... Breakpoint 1, 0xfffffd7ffdc58bb0 in __gnu_objc_personality_v0 () from /usr/lib/64/libobjc.so.2 (gdb) c Continuing. Program received signal SIGABRT, Aborted. 0xfffffd7fff29e09a in _lwp_kill () from /lib/64/libc.so.1 Does this help in any way? BR, - -- Saso On 06/28/2010 03:04 PM, David Chisnall wrote: > On 28 Jun 2010, at 13:18, Saso Kiselkov wrote: > >> Sure, I've attached the original source and generated assembly. > > > Well, that looks weird. The unwind data for main() looks correct, but for > do_throw and -forwardException:, I can't find the the language-specific data > area's header. It appears to be creating the callsite info, but not actually > creating any references to it... > > You're using GCC 4.3.3, according to the include stuff, but the generated > assembly looks a bit like nonsense. I wonder if it is trying to make code > compatible with a Solaris exception ABI that the GNU runtime knows nothing > about? Even that doesn't seem very likely. > > You could try putting a breakpoing on __gnu_objc_personality_v0() and then > checking that the call to parse_lsda_header() is working correctly for each > frame. > > Can you catch the exception in -forwardInvocation: or does it not even unwind > through the do_throw() function? > > David > > -- > This email complies with ISO 3103 > -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkwopAUACgkQRO8UcfzpOHCnFwCdF1o3AzxVpeNWHB/DuTzJzHb1 E64AniTloBAN5GJ+dHBZn7fVrt62crsk =1XG4 -----END PGP SIGNATURE----- _______________________________________________ Discuss-gnustep mailing list [email protected] http://lists.gnu.org/mailman/listinfo/discuss-gnustep
