1. A method of debugging code that executes in a multithreaded processor having a plurality of microengines comprises: receiving a program instruction and an identification representing a selected one of the plurality of microengines from a remote user interface connected to the processor; pausing program execution in the threads executing in the selected microengine; inserting a breakpoint after a program instruction in the selected microengine that matches the program instruction received from the remote user interface; resuming program execution in the selected microengine; executing a breakpoint routine if program execution in the selected microengine encounters the breakpoint; and resuming program execution in the microengine.