System of debugging software through use of code markers inserted into spaces in the source code during and after compilation
First Claim
1. A system for dynamically characterizing and debugging a software system operating on a host computer, comprising:
- a marker database for storing code markers representative of characterizing and debugging information;
means for inserting certain of said code markers from said marker database at predetermined locations within compiled functional source code blocks of said software system whereby other source code in said compiled functional source code blocks is thereby moved into empty spaces int he compiled functional source code blocks of said software system such that said compiled functional source code blocks may be executed without recompiling of said functional source code block with said inserted code markers, said empty spaces in the compiled functional source code blocks of said software system having been inserted prior to compiling of said source code of said software system at positions logically between separate functional source code blocks of said software system, said inserted code markers representing desired user characterizing and debugging information at said predetermined locations;
means for collecting said inserted code markers from said software system during execution of said software system;
a marker memory for storing said collected code markers; and
means for displaying the characterizing and debugging information associated with the collected code markers.
3 Assignments
0 Petitions
Accused Products
Abstract
A system for inserting code markers for observing indications (external to the microprocessor upon which the software operates) of the occurrence of an event in the execution of the software. Additional instructions or markers are added to the software to be debugged to produce simple, encoded, memory references to otherwise unused memory or I/O locations that will always be visible to a logic analyzer as bus cycles. Although the code markers cause a minimal intrusion in the underlying software, they make tracing events by a conventional logic analyzer much simpler and allow for performance evaluations in manners not heretofore possible. In particular, the inserted code markers provide a method of dynamically extracting information from a running software system under test using simple low intrusion print statements, encoded I/O writes on procedure entries and exits and the like. Generally, the code markers are inserted at compile time or interactively during the debug session to make visible critical points in the code execution, such as function calls, task creation, semaphore operations and other resource usage so as to speed isolation of problems at test points during debugging.
211 Citations
13 Claims
-
1. A system for dynamically characterizing and debugging a software system operating on a host computer, comprising:
-
a marker database for storing code markers representative of characterizing and debugging information; means for inserting certain of said code markers from said marker database at predetermined locations within compiled functional source code blocks of said software system whereby other source code in said compiled functional source code blocks is thereby moved into empty spaces int he compiled functional source code blocks of said software system such that said compiled functional source code blocks may be executed without recompiling of said functional source code block with said inserted code markers, said empty spaces in the compiled functional source code blocks of said software system having been inserted prior to compiling of said source code of said software system at positions logically between separate functional source code blocks of said software system, said inserted code markers representing desired user characterizing and debugging information at said predetermined locations; means for collecting said inserted code markers from said software system during execution of said software system; a marker memory for storing said collected code markers; and means for displaying the characterizing and debugging information associated with the collected code markers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for dynamically characterizing and debugging a software system operating on a host computer, comprising the steps of:
-
adding a number of extra spaces in the source code of said software system following each functional source code block of said software system, said number of extra spaces being determined by at least one of the size of the function, number of software parameters and number of local variables of each functional source code block; compiling said software system with said extra spaces; linking the source code having said extra spaces with a marker library containing code marker data structures; determining a type of code marker desired by a user from said marker library for use in characterizing and debugging said software system and storing the location and type of the desired code marker in a code marker database; inserting each desired code marker into said software system at a predetermined location within said functional source code block such that other source code in said functional source code block is moved into said extra spaces without relinking of said source code with said marker library; executing said software system on said host computer; capturing said inserted code markers as they appear during said executing step; checking said captured code markers against said code marker database to determine the location and type of said captured code markers; and displaying the captured code markers checked in said checking step. - View Dependent Claims (10, 11, 12, 13)
-
Specification