| parrotcode: The Parrot debugger | |
| Contents | C | 

parrot_debugger - The Parrot debugger

 parrot_debugger programfile


disassembleloadlist or lrun or rbreak or bwatch or wdelete or ddisableenablecontinue or cnext or neval or etrace or tprint or pstack or sinfoquit or qhelp or h
You can also debug Parrot code by using the debug_init, debug_load and debug_break ops in ops/debug.ops.
int main(int argc, char *argv[])static void PDB_add_exception_handler(Parrot_Interp)    /* Loop to avoid exiting at program end */
    do {
        Parrot_runcode(interp, argc, argv);
        interp->pdb->state |= PDB_STOPPED;
    } while (! (interp->pdb->state & PDB_EXIT));
    free_runloop_jump_point(interp);
}
static void PDB_printwelcome(void)
src/debug.c, include/parrot/debug.h.

The debugger now uses it's own interpreter. User code is run in Interp* debugee. We have:
  debug_interp->pdb->debugee->debugger
    ^                            |
    |                            v
    +------------- := -----------+
Debug commands are mostly run inside the debugger. User code runs of course in the debugee.

| 
                     | 
                
                     
                 |