Vladimir Lipsky <[EMAIL PROTECTED]> wrote: > 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.
Which child interpreter? Parrot_destroy_vtable() is called after free_unused_pobjects(). > ((*((Buffer *)b)).obj).flags = > Do you know what type could have these flags set up? I'm no square but it > could be the managedstruct type. Array, SArray, PerlHash and some more look the same. You could try to set the report_FLAG in $class.c:init() for these classes one after the other. > 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] Strange. >> valgrind has no hint about a problem with this test. > what does valgrind exactly do? valgrind translates a x86 binary into an internal representation and interprets this code. It can detect all kind of access violations, code-paths depending on uninitialized data and so on. > 0x4C56 leo