Re: [perl #32137] stack walking failing to detect pointer in local variable on x86 Linux
[email protected] ("Leopold Toetsch via RT") 26 Oct 2004 09:16:45 -0000
| Newsgroups | perl.perl6.internals,perl.ponie.dev |
|---|---|
| Message-ID | <[email protected]> |
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