I am currently getting a segfault if I enable the exception handler. Running the code through -t, I see this near the end:
3844 set_eh P16 - P16=Exception_Handler=PMC(0x9e0518)
3846 find_lex P16, -1, S18 - P16=Exception_Handler=PMC(0x9e0518), , S18="a"
4094 print "excepted\n"
excepted
4096 set P2, P5["_invoke_cc"] - P2=NULL, P5=Exception=PMC(0x9e0500),
4100 invoke P2 - P2=RetContinuation=PMC(0x9e04e8)
3850 clear_eh
3851 print "HERE?\n"
HERE?
3853 typeof S17, P16 - S17="Sub", P16=NULL
4094 is the exception handler code - so that's getting called. It's a do nothing handler, so it just invokes back to where it was going, which it does.
I don't have a short example on this one - I can try to cook one up, if you like, but it may take a while.
The PIR associated with that is:
set_eh ignore find_lex lexical, -1, arg0 clear_eh print "HERE?\n" typeof type, lexical if type == "PerlUndef" goto no_such_variable
Here's the crash log (OS X)
Date/Time: 2004-03-23 21:07:13 -0500 OS Version: 10.2.8 (Build 6R73) Host: oolong.local.
Command: parrot PID: 1404
Exception: EXC_BAD_ACCESS (0x0001) Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x00000010
Thread 0 Crashed: #0 0x0005c5f0 in Parrot_typeof_s_p (core_ops.c:106) #1 0x0010cf3c in runops_slow_core (runops_cores.c:146) #2 0x0000b12c in runops_int (interpreter.c:838) #3 0x0000b1f4 in runops_ex (interpreter.c:865) #4 0x0000b420 in runops (interpreter.c:941) #5 0x0000f134 in Parrot_runcode (embed.c:693) #6 0x00003e9c in main (main.c:559) #7 0x00002470 in _start (crt.c:267) #8 0x000022f0 in start
Thread 1: #0 0x9003e9a8 in semaphore_wait_signal_trap #1 0x9003e7c4 in _pthread_cond_wait #2 0x00199004 in queue_wait (tsq.c:319) #3 0x00107340 in event_thread (events.c:890) #4 0x90020c28 in _pthread_body
Thread 2: #0 0x9002568c in select #1 0x00106ce8 in io_thread (events.c:640) #2 0x90020c28 in _pthread_body
PPC Thread State: srr0: 0x0005c5f0 srr1: 0x0000f030 vrsave: 0x00000000 xer: 0x00000000 lr: 0x0010cf3c ctr: 0x0005c598 mq: 0x00000000 r0: 0x00000040 r1: 0xbffff870 r2: 0x10000000 r3: 0x00a0bd04 r4: 0x0097e400 r5: 0x0098fea0 r6: 0x00bb5a38 r7: 0x0098fea0 r8: 0x0098fea0 r9: 0x00000000 r10: 0x0001e73b r11: 0x0097e400 r12: 0x0005c598 r13: 0x00000000 r14: 0x00000000 r15: 0x00000000 r16: 0x00000000 r17: 0x00000000 r18: 0x00000000 r19: 0x00000000 r20: 0x00000000 r21: 0x00000000 r22: 0x00000000 r23: 0x00000000 r24: 0x00000000 r25: 0x00000000 r26: 0xbffffc84 r27: 0x00000014 r28: 0x00000004 r29: 0x0097e5c4 r30: 0xbffff870 r31: 0x0010ce64
--
Will "Coke" Coleda will at coleda dot com