On 6/13/07, Kevin Tew <[EMAIL PROTECTED]> wrote:
My patch only fails these tests.
this patch is better now that you added the case chromatic missed. the location of the free_list segfault that perl6 experiences now occurs when compiling the perl6 grammar, instead of when the test suite was run. it looks similar (same line of code) but the backtrace is a bit different (note, no *_key_* function.) also, the pointer is not at 0xffffffff, it's at a more reasonable 0x000022cc. note this means the bug is likely not due to an assignment of -1 somewhere it shouldn't have been. this has been suspected for a day or so, but now it's been confirmed. i'll continue to hunt. backtrace attached inline below. ~jerry
libparrot.dll!gc_ms_get_free_object(parrot_interp_t *
interp=0x00202dc8, Small_Object_Pool * pool=0x00203420) Line 151 + 0x6 bytes C libparrot.dll!new_pmc_header(parrot_interp_t * interp=0x00202dc8, unsigned long flags=1024) Line 216 + 0x10 bytes C libparrot.dll!get_new_pmc_header(parrot_interp_t * interp=0x00202dc8, long base_type=109, unsigned long flags=1024) Line 218 + 0xd bytes C libparrot.dll!pmc_new_noinit(parrot_interp_t * interp=0x00202dc8, long base_type=109) Line 252 + 0xf bytes C libparrot.dll!Parrot_new_p_i(long * cur_opcode=0x00c40310, parrot_interp_t * interp=0x00202dc8) Line 72 + 0x19 bytes C libparrot.dll!runops_slow_core(parrot_interp_t * interp=0x00202dc8, long * pc=0x00c40310) Line 184 + 0x18 bytes C libparrot.dll!runops_int(parrot_interp_t * interp=0x00202dc8, unsigned int offset=3) Line 779 + 0xb bytes C libparrot.dll!runops(parrot_interp_t * interp=0x00202dc8, unsigned int offs=3) Line 88 + 0xd bytes C libparrot.dll!runops_args(parrot_interp_t * interp=0x00202dc8, PMC * sub=0x00bbc298, PMC * obj=0x0097b718, parrot_string_t * meth=0x00000000, const char * sig=0x10291db4, char * ap=0x0017feac) Line 202 + 0xd bytes C libparrot.dll!Parrot_runops_fromc_args(parrot_interp_t * interp=0x00202dc8, PMC * sub=0x00bbc298, const char * sig=0x10291db4, ...) Line 304 + 0x1d bytes C libparrot.dll!Parrot_runcode(parrot_interp_t * interp=0x00202dc8, int argc=4, char * * argv=0x00202ce4) Line 803 + 0x16 bytes C libparrot.dll!imcc_run_pbc(parrot_interp_t * interp=0x00202dc8, int obj_file=0, const char * output_file=0x00000000, int argc=4, char * * argv=0x00202ce4) Line 569 + 0x11 bytes C libparrot.dll!imcc_run(parrot_interp_t * interp=0x00202dc8, const char * sourcefile=0x00202d1d, int argc=4, char * * argv=0x00202ce4) Line 766 + 0x19 bytes C parrot.exe!main(int argc=4, char * * argv=0x00202ce4) Line 61 + 0x15 bytes C parrot.exe!__tmainCRTStartup() Line 586 + 0x17 bytes C kernel32.dll!756519f1() [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll] ntdll.dll!773ed109()