NAME ^

parrot_debugger - The Parrot debugger

SYNOPSIS ^

 parrot_debugger programfile

DESCRIPTION ^

Commands ^

disassemble

Disassemble the bytecode.

Use this if you have a PBC file but not the PASM.

load

Load a source code file.

list or l

List the source code file.

run or r

Run the program.

break or b

Add a breakpoint.

watch or w

Add a watchpoint.

delete or d

Delete a breakpoint.

disable

Disable a breakpoint.

enable

Reenable a disabled breakpoint.

continue or c

Continue the program execution.

next or n

Run the next instruction

eval or e

Run an instruction.

trace or t

Trace the next instruction.

print or p

Print the interpreter registers.

stack or s

Examine the stack.

info

Print interpreter information.

quit or q

Exit the debugger.

help or h

Print the help.

Debug Ops ^

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[])

Reads the PASM or PBC file from argv[1], loads it, and then calls Parrot_debug().

static void PDB_add_exception_handler(Parrot_Interp)

Adds a default exception handler to PDB.

*/

static void PDB_run_code(Parrot_Interp interp, int argc, char *argv[]) { new_runloop_jump_point(interp); if (setjmp(interp->current_runloop->resume)) { free_runloop_jump_point(interp); fprintf(stderr, "Caught exception\n"); return; }

    /* 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)

Prints out the welcome string.

SEE ALSO ^

src/debug.c, include/parrot/debug.h.

HISTORY ^

TODO ^


parrot