From: "Leopold Toetsch" <[EMAIL PROTECTED]> Sent: Thursday, November 27, 2003 12:04 PM
> PMC (in gdb speak): > b dod.c:525 > r t/pmc/pmc_61.pasm > p *(PMC *) b > p *((PMC *) b)->vtable > c > ... Umm .. the problem is that this pmc doesn't have the vtable; (*((PMC *)b)).vtable points to a block of memory which belonged to the child interpreter's pool and has already been freed, I deduce from examining the adresses. So it ends up with Access Violation in ntdll!RtlFreeHeap when VTABLE_destroy is called. Now I'm just trying to find out what type of a pmc it is, and track down when the pmc is created. WRT type, all what I know is ((*((Buffer *)b)).obj).flags = 72353280(PObj_is_PMC_FLAG|PObj_is_PMC_EXT_FLAG| PObj_custom_mark_FLAG|PObj_active_destroy_FLAG| b_PObj_is_special_PMC_FLAG) Do you know what type could have these flags set up? I'm no square but it could be the managedstruct type. And one more thing to say, I get one more segfault there (dod.c, line 525) while testing with interpreter.flags | PARROT_DEBUG_FLAG [1] > valgrind has no hint about a problem with this test. what does valgrind exactly do? > leo 0x4C56 [1] Parrot_set_flag(interpreter, PARROT_DEBUG_FLAG);