On Thu, Apr 28, 2005 at 02:14:17PM +0200, Leopold Toetsch wrote: > Nicholas Clark <[EMAIL PROTECTED]> wrote: > > > (gdb) p interpreter->exceptions > > $5 = (struct parrot_exception_t *) 0x0 > > > what should have initialised that? > > An exception structure is created per entering a run-loop, see: > src/inter_runc.c:runops(). You can either create your own exception > setup/handler (which needs an interface) or probably simpler (and > proposed some time ago) use Parrot_run_native() to start your C code. > > With the latter you'd have: > > perl parrot > > perl_init() > interp = Parrot_new() > ... > Parrot_run_native(interp, perl_run) --> > runops() > enternative perl_run > <-- > > perl_run() { ... } > > This would also set the stack top for GC.
At this point I don't want to set the stack top for GC (at least not including the stack that holds perl 5 function calls), as I'm trying to track down all the causes of reference count anomalies in the perl core. I've already found 1 bug (and fixed it): http://public.activestate.com/cgi-bin/perlbrowse?patch=24410 and I think that I may have another long standing bug w.r.t. when global destruction of the symbol table actually happens. Nicholas Clark