| 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.

|
|
|