1. In a data processing system comprising a processor configured to execute a first set of instructions corresponding to a first thread and a second set of instructions corresponding to a second thread, a method comprising: debugging the first thread and the second thread, wherein the first set of instructions corresponding to the first thread comprises a debug instruction capable of selecting zero or more threads of the processor, wherein when the debug instruction selects the second thread but not the first thread, the debugging comprises: in response to execution of the debug instruction by the first thread while executing the first set of instructions, generating a debug event for processing by the second thread, wherein processing the debug event comprises causing a halting operation of the second thread, and wherein execution of the first thread is not halted in response to execution of the debug instruction.