Re: parrot crash...
Ah, good call. Adding -G causes the code to complete with no crash. (This also clears the two hurdles in the test suite I mentioned elsewhere.) (debugger) - I'm not sure I can get anything more helpful out of the debugger than the crash log (with stack trace) from an earlier post - Here's the backtrace, though (when run without -G) (gdb) backtrace #0 0x0002d310 in pobject_lives (interpreter=0x923400, obj=0x) at src/dod.c:179 #1 0x001067ec in mark_pmc_register_stack (interpreter=0x923400, chunk=0x9afb80) at src/register.c:129 #2 0x0010f294 in mark_context (interpreter=0x923400, ctx=0x947350) at src/sub.c:102 #3 0x001a8c6c in Parrot_Continuation_mark (interpreter=0x923400, pmc=0x984588) at continuation.c:53 #4 0x0002e38c in mark_special (interpreter=0x923400, obj=0x984588) at src/dod.c:114 #5 0x0002d358 in pobject_lives (interpreter=0x923400, obj=0x984588) at src/dod.c:199 #6 0x0002de74 in trace_mem_block (interpreter=0x923400, lo_var_ptr=3221223824, hi_var_ptr=3221221840) at src/dod.c:889 #7 0x001946f4 in trace_system_stack (interpreter=0x923400) at src/cpu_dep.c:117 #8 0x001946ac in trace_system_areas (interpreter=0x923400) at src/cpu_dep.c:98 #9 0x0002d578 in trace_active_PMCs (interpreter=0x923400, trace_stack=1) at src/dod.c:297 #10 0x0002e04c in Parrot_do_dod_run (interpreter=0x923400, flags=1) at src/dod.c:1028 #11 0x0010aef0 in more_traceable_objects (interpreter=0x923400, pool=0x923dc0) at src/smallobject.c:110 #12 0x0010b028 in get_free_object (interpreter=0x923400, pool=0x923dc0) at src/smallobject.c:176 #13 0xef0c in get_free_pmc (interpreter=0x923400, pool=0x923dc0) at src/headers.c:53 #14 0x00029ca0 in get_new_pmc_header (interpreter=0x923400, base_type=46, constant=0) at src/pmc.c:104 #15 0x00029fd0 in pmc_new_noinit (interpreter=0x923400, base_type=46) at src/pmc.c:208 #16 0x0003af64 in Parrot_newsub_p_ic_ic (cur_opcode=0x9c61b8, interpreter=0x923400) at ops/core.ops:508 #17 0x00111ddc in runops_slow_core (interpreter=0x923400, pc=0x9c61b8) at src/runops_cores.c:146 #18 0xaa10 in runops_int (interpreter=0x923400, offset=689) at src/interpreter.c:833 #19 0xaad8 in runops_ex (interpreter=0x923400, offset=689) at src/interpreter.c:863 #20 0xad04 in runops (interpreter=0x923400, offset=689) at src/interpreter.c:935 #21 0xea20 in Parrot_runcode (interpreter=0x923400, argc=2, argv=0xbcd8) at src/embed.c:692 #22 0x378c in main (argc=2, argv=0xbcd8) at imcc/main.c:556 #23 0x1d60 in _start (argc=3, argv=0xbcd4, envp=0xbce4) at /SourceCache/Csu/Csu-45/crt.c:267 #24 0x1be0 in start () On Friday, March 26, 2004, at 03:39 AM, Leopold Toetsch wrote: Will Coleda [EMAIL PROTECTED] wrote: I'm still seeing both bugs, with a cvs update, make realclean; perl Configure.pl, make. (if I do a cvs diff in my repo, the only changed files are tcl related.) What other intel do you need to help duplicate the bugs? Try with -G to turn off DOD/GC. Run it in the debugger ... leo -- Will Coke Coledawill at coleda dot com
Re: parrot crash...
Will Coleda [EMAIL PROTECTED] wrote: #3 0x001a8c6c in Parrot_Continuation_mark (interpreter=0x923400, pmc=0x984588) at continuation.c:53 Seems to be dead context. Does this help? --- parrot/classes/continuation.pmc Mon Mar 22 13:38:09 2004 +++ parrot-leo/classes/continuation.pmc Fri Mar 26 21:04:51 2004 @@ -52,8 +52,10 @@ */ void mark () { +#if 0 struct Parrot_Sub * cc = (struct Parrot_Sub*)PMC_sub(SELF); mark_context(INTERP, cc-ctx); +#endif } /* --- parrot/classes/coroutine.pmcWed Mar 24 18:02:16 2004 +++ parrot-leo/classes/coroutine.pmcFri Mar 26 21:08:45 2004 @@ -74,7 +74,7 @@ struct Parrot_Coroutine *c = (struct Parrot_Coroutine *)PMC_sub(SELF); mark_stack(INTERP, c-co_control_stack); /* mark_stack(INTERP, c-co_pad_stack); */ -SUPER();/* mark rest */ +mark_context(INTERP, c-ctx); } }
Re: parrot crash...
Ah. this appears to be the same stack trace already noted by: Mitchell N Charity On Thursday, March 25, 2004, at 11:56 PM, Will Coleda wrote: I knew I should have updated to cvs latest before issuing a tcl release. =) (go ahead and apply that patch, I'll get things fixed as soon as I can.) If I run a very short tcl program, ala: set a(b) whee puts - I get a crash in parrot, ala: Exception: EXC_BAD_ACCESS (0x0001) Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x0007 Thread 0 Crashed: #0 0x0002d310 in pobject_lives (dod.c:179) #1 0x001067ec in mark_pmc_register_stack (register.c:126) #2 0x0010f294 in mark_context (sub.c:103) #3 0x001a8c6c in Parrot_Continuation_mark (continuation.c:54) #4 0x0002e38c in mark_special (dod.c:115) #5 0x0002d358 in pobject_lives (dod.c:211) #6 0x0002de74 in trace_mem_block (dod.c:889) #7 0x001946f4 in trace_system_stack (cpu_dep.c:119) #8 0x001946ac in trace_system_areas (cpu_dep.c:99) #9 0x0002d578 in trace_active_PMCs (dod.c:300) #10 0x0002e04c in Parrot_do_dod_run (dod.c:1028) #11 0x0010aef0 in more_traceable_objects (smallobject.c:111) #12 0x0010b028 in get_free_object (smallobject.c:177) #13 0xef0c in get_free_pmc (headers.c:53) #14 0x00029ca0 in get_new_pmc_header (pmc.c:104) #15 0x00029fd0 in pmc_new_noinit (pmc.c:208) #16 0x0003af64 in Parrot_newsub_p_ic_ic (core_ops.c:508) #17 0x00111ddc in runops_slow_core (runops_cores.c:146) #18 0xaa10 in runops_int (interpreter.c:838) #19 0xaad8 in runops_ex (interpreter.c:865) #20 0xad04 in runops (interpreter.c:941) #21 0xea20 in Parrot_runcode (embed.c:693) #22 0x378c in main (main.c:559) #23 0x1d60 in _start (crt.c:267) #24 0x1be0 in start Thread 1: #0 0x9003e9a8 in semaphore_wait_signal_trap #1 0x9003e7c4 in _pthread_cond_wait #2 0x0019a988 in queue_wait (tsq.c:319) #3 0x00108c24 in event_thread (events.c:905) #4 0x90020c28 in _pthread_body Thread 2: #0 0x9002568c in select #1 0x001085a0 in io_thread (events.c:647) #2 0x90020c28 in _pthread_body The crash is fragile - doesn't happen if you change the puts to puts {}, or delete the second line entirely. I'll try to find a smaller test case. -- Will Coke Coledawill at coleda dot com -- Will Coke Coledawill at coleda dot com
Re: parrot crash...
Will Coleda [EMAIL PROTECTED] wrote: I knew I should have updated to cvs latest before issuing a tcl release. =) ... and before sending bug reports ;) The hash/_dumper interaction bug vanished ... $ parrot hash-bug.imc 1000 | tail -3 998 = undef, 999 = undef } ... as very likely the bug below: #3 0x001a8c6c in Parrot_Continuation_mark (continuation.c:54) leo