Nicholas Clark <[EMAIL PROTECTED]> wrote:

> I have evidence that DOD runs can miss noticing local variable pointers to
> live objects on x86 Linux. This is happening while running ponie, but
> the problem is during a single call to string_make. The gdb traces are from
> a copy of the parrot source code which has had a few debugging printf()s and
> static variables added, but the problem shows up with vanilla parrot source
> code.

Please set a breakpoint at dod.c:trace_mem_block, which should be called
by the stack walking code. The variables lo_var_ptr and hi_var_ptr
should be set and contain the auto variable on stack.

Do you have a test for Parrot showing this behavior?


> PS It's occurred to me that this constant calling of Parrot_PMC_typenum without
>    caching (or precomputing) the result is woefully inefficient,

Yep. It's a hash lookup. Just run it during ponie init, remember the
types you are interested in and use Parrot_PMC_new().

leo


Reply via email to