Patent ID: 6988264

Claim:
A method of debugging multiple tasks in a computer system, wherein the method uses a single instance of a debugger application intended to be only capable of debugging a single task, the method comprising the steps of: (i) executing only single instance of a debugger application under an operating system on the computer system, wherein the computer system includes memory and the memory includes registers; (ii) executing first and second target tasks, wherein executing the debugger application includes executing system calls to services of the operating system; (iii) executing a switch task; (iv) intercepting the system calls by the switch task; (v) setting a debug task variable by the switch task in response to one of the target tasks encountering a breakpoint, wherein the debug task variable indicates the one of the target tasks that encountered the breakpoint, and wherein in response to a first user-initiated register display command after the breakpoint the switch task directs a first set of register contents to the debugger application for displaying to the user, the first set of register contents being for the one of the target tasks indicated by the debug task variable; (vi) setting, by the switch task, the debug task variable, to indicate a certain one of the target tasks in response to a command issued by a user of the debugger application for switching to the certain one of the target tasks; (vii) signaling a false breakpoint to the debugger application by the switch task in response to the command issued by the user of the debugger application for switching to the certain one of the target tasks, so that the debugger application generates a command prompt for the user; and (viii) directing, by the switch task, a second set of register contents to the debugger application for displaying to the user, the directing of the second set of register contents to the debugger application being in response to a second user-initiated register display command executed after step (vii) and in response to the setting of the debug task variable by the switch task in step (vi), so that the second provided set of register contents is for the one of the target tasks indicated by the debug task variable set in step (vi).