Method and apparatus for debugging programs in a distributed environment
AssigneeARC International
InventorsThomas J. Pennello, Henry A. Davis
Life of this patent
Estimating the term…
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.
Claims24
A method of debugging a plurality of distributed programs, comprising:
- identifying a plurality of processes;
- initializing each of said processes;
- executing with a single thread of control among said processes;
- and
- continuously switching between said processes to obtain status information relating thereto.
A system for debugging heterogenous processors, comprising:
- a processor having at least one debug process running thereon, and at least one simulation process associated and in data communication with said at least one debug process;
- and
- at least one hardware process in data communication with said at least on debug process;
- wherein said at least one simulation and hardware processes are controlled via a single thread.
A storage device adapted for use with a computing device, comprising:
- a storage medium configured to store a plurality of data thereon;
- and
- a plurality of data stored thereon, said data comprising a computer program adapted to run on a processor, and configured to debug one or more other computer programs using the method comprising:
- identifying a plurality of processes;
- initializing each of said processes;
- executing with a single thread of control among said processes;
- and
- continuously switching between said processes to obtain status information relating thereto.
A method of debugging a plurality of distributed programs, comprising:
- identifying a plurality of processes;
- defining at least one interface between a debug process and said plurality of processes;
- initializing each of said processes;
- executing with a single thread of control among said processes;
- and
- selectively permitting at least a portion of said processes to operate while stopping others of said processes using a single one of said at least one interface.
A method of optimizing the operation a multi-processor system comprising a plurality of software processes, comprising:
- initializing each of said processes;
- executing with a single thread of control among said processes;
- iteratively obtaining execution profiling information from at least a portion of said processors;
- and
- optimizing the operation of said system based at least in part on said execution profiling information.
A method of coordinating the operation of at least one simulation process with at least one hardware process, comprising:
- initializing at least one simulation process;
- initializing at least one hardware process;
- defining at least one interface between a debug process and said plurality of processes;
- executing with a single thread of control among said processes;
- and
- controlling said at least one simulation process and said at least one hardware process via said at least one interface.
A method of debugging a plurality of processors using a debug process, said debug process being in data communication with said processors, comprising:
- initializing each of said processors;
- executing with a single thread of control among said processors using said debug process;
- establishing a minimum polling time for each of said processors;
- and
- obtaining status information from each of said processors based at least in part on said polling interval.
An apparatus adapted for debug of a plurality of heterogeneous processors, comprising:
- a digital processor;
- at least one debug process adapted to run on said digital processor;
- and
- a plurality of software processes distributed among said plurality of heterogeneous processors;
- wherein said plurality of processes are adapted to gather status information regarding respective ones of said heterogeneous processors as controlled by said debug process.
Dependencies are inferred from the claim text.