System for modifying relocatable object code files to monitor accesses to dynamically allocated memory
AssigneePure Software Inc.
InventorReed Hastings
Life of this patent
Estimating the term…
Loading patent…
AssigneePure Software Inc.
InventorReed Hastings
Estimating the term…
An object code expansion program inserts new instructions and data between preexisting instructions and data of an object code file; offsets are modified to reflect new positions of the preexisting instructions and data. For each item of preexisting object code (instructions or data), the following steps are performed: making a new code block comprising any desired new instructions and the item, and storing it as new object code; tracking the location of the item and the new code block within the new object code; and tracking items that contain inter-item offsets. Then, each inter-item offset is updated using the new location of the item or new code block, as required. Finally, offsets in symbol tables and relocation structures are updated with the new location of the item. This expansion program is used to add instructions to object code files of a second program, to monitor substantially all of the memory accesses of the second program. The added instructions establish and maintain a memory status array with entries for memory locations that are validly accessibly by the second program; entries indicate the status of corresponding memory locations. The memory status array is used to check for the errors of writing to unallocated memory and reading from unallocated or uninitialized memory. Also, the data section of the object code files are expanded with extra dummy entries to aid in the detection of array bounds violations and similar data errors. Furthermore, watchpoints can be established for more comprehensive monitoring.
A computer implemented method for inserting new instructions between preexisting instructions, a set of said preexisting instructions requiring new instructions, said method comprising the steps of;
A computer implemented method for inserting new instructions into a relocatable object file having preexisting instructions, data, and linking and debugging auxiliary structures, a set of said preexisting instructions requiring new instructions, said method comprising the steps of:
A computer implemented method for inserting new instructions into a relocatable object file having preexisting instructions, data, and auxiliary structures, said auxiliary structures having at least some offsets and comprising text relocation structures, data relocation structures, and symbol structures, wherein a set of said preexisting instructions requires new instructions, said method comprising the steps of:
A computer implemented method for equipping a computer program with the ability to monitor most of its own memory accesses, wherein memory access types include read and write, said method comprising the steps of:
In a computer, an executable computer programs capable of monitoring most of its own memory accesses, wherein memory access types include read and write, said computer program capable of accessing a set of memory regions, said computer program comprising
Dependencies are inferred from the claim text.