INSTRUMENTING SOFTWARE FOR ENHANCED DIAGNOSABILITY
First Claim
1. In a computer system comprising an operating system and compiled software that calls one or more routines, a method of providing a more robust system with enhanced error diagnosis capabilities by instrumenting the compiled software to include diagnostic information so that when a routine writes data beyond a memory allocation an origin of a call to the routines may be more easily and uniquely identified, the method comprising acts of:
- unassembling the compiled software into a plurality of instructions;
searching the unassembled software for one or more instructions that identify at least one call to a routine of interest, wherein the at least one call comprises a parameter portion and a routine portion;
modifying at least one of the parameter portion or the routine portion of the at least one call with diagnostic information including a unique tag identifier that uniquely identifies the at least one call to the routine of interest when the at least one call requests allocation of memory; and
recording the diagnostic information and the at least one call so that the at least one call may subsequently be identified from within the routine of interest if the routine writes data beyond any allocated memory.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are provided for instrumenting compiled software to include diagnostic information such that an origin of a call to one or more routines may be more easily identified. For example, a system is provided which unassembles or uncompiles software into a more readily identifiable instructional form, which is then searched to identify various calls to various routines of interest. Portions of the identified calls are then modified with diagnostic information that will identify the call. This diagnostic information and the call are then recorded so that the call may be subsequently traced back to its origin when, for example, an error occurs.
44 Citations
48 Claims
-
1. In a computer system comprising an operating system and compiled software that calls one or more routines, a method of providing a more robust system with enhanced error diagnosis capabilities by instrumenting the compiled software to include diagnostic information so that when a routine writes data beyond a memory allocation an origin of a call to the routines may be more easily and uniquely identified, the method comprising acts of:
-
unassembling the compiled software into a plurality of instructions;
searching the unassembled software for one or more instructions that identify at least one call to a routine of interest, wherein the at least one call comprises a parameter portion and a routine portion;
modifying at least one of the parameter portion or the routine portion of the at least one call with diagnostic information including a unique tag identifier that uniquely identifies the at least one call to the routine of interest when the at least one call requests allocation of memory; and
recording the diagnostic information and the at least one call so that the at least one call may subsequently be identified from within the routine of interest if the routine writes data beyond any allocated memory. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8-18. -18. (canceled)
-
19. In a computer system comprising an operating system and compiled software that calls one or more routines, a method of providing a more robust system with enhanced error diagnosis capabilities by instrumenting the compiled software to include diagnostic information so that when a routine writes data beyond a memory allocation an origin of a call to the one or more routines may be more easily identified, the method comprising steps for:
-
producing a plurality of software instructions from the compiled software;
identifying, from the plurality of instructions produced from the compiled software, at least one original call to a routine of interest;
distinguishing the at least one original call to the routine of interest from any other call to the routine of interest by providing at least a portion of the at least one original call with diagnostic information including a unique tag identifier that the at least one distinguished call uses when requesting allocation of memory; and
mapping the at least one distinguished call that includes the unique tag identifier to the at least one original call so that a location of the at least one original call may be subsequently identified from within the routine of interest if the routine writes data beyond any allocated memory based on the original call having been distinguished from any other call to the routine of interest. - View Dependent Claims (20, 21, 22, 23, 24)
-
-
25-34. -34. (canceled)
-
35. In a computer system comprising an operating system and compiled software that calls one or more routines, a computer program product comprising one or more computer readable storage media used to implement a method of providing a more robust system with enhanced error diagnosis capabilities by instrumenting the compiled software to include diagnostic information so that when a routine writes data beyond a memory allocation an origin of a call to the routines may be more easily and uniquely identified, the computer program product comprising one or more computer-readable media having stored thereon computer-executable instructions that, when executed by one or more processors of the computing system, cause the computing system to perform the following:
-
unassemble the compiled software into a plurality of instructions;
search the unassembled software for one or more instructions that identify at least one call to a routine of interest, wherein the at least one call comprises a parameter portion and a routine portion;
modify at least one of the parameter portion or the routine portion of the at least one call with diagnostic information including a unique tag identifier that uniquely identifies the at least one call to the routine of interest when the at least one call requests allocation of memory; and
record the diagnostic information and the at least one call so that the at least one call may subsequently be identified from within the routine of interest if the routine writes data beyond any allocated memory. - View Dependent Claims (41, 42, 45, 46, 47)
-
-
36-40. -40. (canceled)
-
43-44. -44. (canceled)
-
48-59. -59. (canceled)
Specification