Debugging techniques in a multithreaded environment
First Claim
1. A computer-implemented method for debugging targets using debugger nubs, the method comprising:
- executing a first debugger nub associated with a first target, the first debugger nub being of a first debugger nub type;
executing a second debugger nub associated with a second target, the second debugger nub being of a second debugger nub type that is distinct from the first debugger nub type;
when the first debugger nub receives a first instruction from a debugger to provide indicated functionality, providing the indicated functionality in a manner specific to the first debugger nub type; and
when the second debugger nub receives the first instruction from the debugger to provide the indicated functionality, providing the indicated functionality in a manner specific to the second debugger nub type that is distinct from the manner specific to the first debugger nub type.
3 Assignments
0 Petitions
Accused Products
Abstract
A system for debugging targets using various techniques, some of which are particularly useful in a multithread environment. These techniques include implementing breakpoints using out-of-line instruction emulation so that an instruction replaced with a breakpoint instruction does not need to be returned to its original location for single-step execution, executing a debugger nub for each target as part of the target task but using a nub task thread for the nub execution that is separate from the target task threads, providing immunity from breakpoints for specified threads such as the nub thread via specialized breakpoint handlers used by those threads, and virtualizing the debugger nub such that a shared root nub provides a uniform interface between the debugger and the target while specialized nubs provide differing functionality based on the type of target being debugged.
-
Citations
26 Claims
-
1. A computer-implemented method for debugging targets using debugger nubs, the method comprising:
-
executing a first debugger nub associated with a first target, the first debugger nub being of a first debugger nub type;
executing a second debugger nub associated with a second target, the second debugger nub being of a second debugger nub type that is distinct from the first debugger nub type;
when the first debugger nub receives a first instruction from a debugger to provide indicated functionality, providing the indicated functionality in a manner specific to the first debugger nub type; and
when the second debugger nub receives the first instruction from the debugger to provide the indicated functionality, providing the indicated functionality in a manner specific to the second debugger nub type that is distinct from the manner specific to the first debugger nub type. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A computer-readable medium whose contents cause a computing device to debug targets using debugger nubs, by performing steps comprising:
-
executing a first debugger nub associated with a first target, the first debugger nub being of a first debugger nub type, executing a second debugger nub associated with a second target, the second debugger nub being of a second debugger nub type that is distinct from the first debugger nub type;
when the first debugger nub receives a first instruction from a debugger to provide indicated functionality, providing the indicated functionality in a manner specific to the first debugger nub type; and
when the second debugger nub receives the first instruction from the debugger to provide the indicated functionality, providing the indicated functionality in a manner specific to the second debugger nub type that is distinct from the manner specific to the first debugger nub type. - View Dependent Claims (25)
-
-
26. A computing device for debugging targets using debugger nubs, comprising:
-
a debugger nub execution component that is capable of executing a first debugger nub associated with a first target, the first debugger nub being of a first debugger nub type, and of executing a second debugger nub associated with a second target, the second debugger nub being of a second debugger nub type that is distinct from the first debugger nub type;
the executing first debugger nub that receives a first instruction from a debugger to provide indicated functionality, and that provides the indicated functionality in a manner specific to the first debugger nub type; and
the executing second debugger nub that receives the first instruction from the debugger to provide the indicated functionality, and that provides the indicated functionality in a manner specific to the second debugger nub type that is distinct from the manner specific to the first debugger nub type.
-
Specification