Method and apparatus for debugging programs in a distributed environment
First Claim
Patent Images
1. A method of debugging a plurality of processes on a plurality of heterogeneous processors using a debugger program, comprising:
- initializing a poll delay associated with each process;
determining the state of said debugger program;
if said state comprises a first value, determining the run status of at least one of said processes;
if said at least process is running, determining a process type associated with said at least one process;
if said process type comprises a simulation type, advancing through at least one instruction cycle and checking the status of said simulated process; and
if said process type comprises a hardware type, delaying said debugger program for a predetermined time until a subsequent polling opportunity is available, and determining the status of said hardware process at or after said subsequent polling opportunity;
wherein said plurality of processes are adapted to gather status information regarding respective ones of said heterogeneous processors as controlled by said debug process, said gathering of status information occurring on a dynamic per-process time interval.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for debugging programs in a distributed environment, such as a set of heterogeneous hardware processors (integrated circuits or In-Circuit Emulators), and/or software-based simulators. In one embodiment, the method comprises identifying a plurality of processes; initializing each of the processes; executing with a single thread of control among the processes; and continuously cycling among the processes to obtain status information. A computer program and apparatus for implementing the aforementioned methodology are also disclosed.
91 Citations
28 Claims
-
1. A method of debugging a plurality of processes on a plurality of heterogeneous processors using a debugger program, comprising:
-
initializing a poll delay associated with each process; determining the state of said debugger program; if said state comprises a first value, determining the run status of at least one of said processes; if said at least process is running, determining a process type associated with said at least one process; if said process type comprises a simulation type, advancing through at least one instruction cycle and checking the status of said simulated process; and if said process type comprises a hardware type, delaying said debugger program for a predetermined time until a subsequent polling opportunity is available, and determining the status of said hardware process at or after said subsequent polling opportunity; wherein said plurality of processes are adapted to gather status information regarding respective ones of said heterogeneous processors as controlled by said debug process, said gathering of status information occurring on a dynamic per-process time interval. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. An apparatus for debugging a plurality of processes on a plurality of heterogeneous processors, said apparatus debugging according to the method comprising:
-
initializing a poll delay associated with each process; determining the state of said debugger program; if said state comprises a first value, determining the run status of at least one of said processes; if said at least process is running, determining a process type associated with said at least one process; if said process type comprises a simulation type, advancing through at least one instruction cycle and checking the status of said simulated process; and if said process type comprises a hardware type, delaying said debugger program for a predetermined time until a subsequent polling opportunity is available, and determining the status of said hardware process at or after said subsequent polling opportunity; wherein said plurality of processes are adapted to gather status information regarding respective ones of said heterogeneous processors as controlled by said debug process, said gathering of status information occurring on a dynamic per-process time interval. - View Dependent Claims (14, 15)
-
-
16. A method of debugging a plurality of processes on a plurality of heterogeneous processors using a debugger program, comprising:
-
initializing a poll delay associated with each process; determining the state of said debugger program; determining the run status of at least one of said processes; and determining a process type associated with said at least one process, wherein if said process type comprises a simulation type, advancing through at least one instruction cycle and checking the status of said simulated process; and wherein if said process type comprises a hardware type, delaying said debugger program for a predetermined time until a subsequent polling opportunity is available, and determining the status of said hardware process at or after said subsequent polling opportunity; and wherein said plurality of processes are adapted to gather status information regarding respective ones of said heterogeneous processors as controlled by said debug process, said gathering of status information occurring on a dynamic per-process time interval. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A method of debugging a plurality of processes on a plurality of heterogeneous processors using a debugger program, comprising:
-
a step for initializing a minimum time period between retrievals of said heterogeneous processor status information for display to a user with each process; a step for determining the state of said debugger program; a step for determining the run status of at least one of said processes if said state comprises a first value; a step for determining a process type associated with said at least one process if said at least process is running; a step for advancing through at least one instruction cycle and checking the status of said simulated process if said process type comprises a simulation type; and a step for delaying said debugger program for a predetermined time until a subsequent polling opportunity is available if said process type comprises a hardware type; and a step for determining the status of said hardware process at or after said subsequent polling opportunity; wherein said plurality of processes are adapted to gather status information regarding respective ones of said heterogeneous processors as controlled by said debug process, said gathering of status information occurring on a dynamic per-process time interval.
-
Specification