Patent US5535329A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5535329A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for modifying relocatable object code files and monitoring programs

Assignee: International Business Machines Corp
•
Filing: 1995-05-26
•
Granted: 1996-07-09
•
Expires: 2015-05-26
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract 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 accessible 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.

Inventors

  • 👤 Reed Hastings

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 17:22
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/362; G06F11/3636; G06F11/3624; G06F11/3644; G06F8/00; G06F8/40; G06F8/41; G06F8/44; G06F8/447; G06F8/54; G06F8/70; G06F8/71; G06F9/00; G06F9/06; G06F9/44; G06F9/445; G06F9/44521

Claims Analysis

Total Claims: 15
Claim 1
Independent Claim 129 words
A computer implemented method for generating machine instructions including memory access monitoring instructions, said method comprising the steps of: receiving as input a first set of machine instructions, said first set of machine instructions being specific to a computer processor with each machine instruction of said first set corresponding to an instruction executable by said computer processor, said first set of machine instructions including memory access instructions that access a region of memory; and generating a second set of machine instructions from said first set of machine instructions and having additional machine instructions that are memory monitoring instructions, said memory monitoring instructions checking memory status information for said region of memory accessed by said memory access instructions, said memory status information including an allocated state and an unallocated state.
Claim 2
Dependent Claim 129 words
A computer implemented method for generating machine instructions including memory access monitoring instructions, said method comprising the steps of: receiving as input a first set of machine instructions, said first set of machine instructions being specific to a computer processor with each machine instruction of said first set corresponding to an instruction executable by said computer processor, said first set of machine instructions including memory access instructions that access a region of memory; and generating a second set of machine instructions from said first set of machine instructions and having additional machine instructions that are memory monitoring instructions, said memory monitoring instructions checking memory status information for said region of memory accessed by said memory access instructions, said memory status information including an allocated state and an unallocated state.
Claim 3
Dependent Claim 33 words
The method of claim 1, further comprising the step of signalling an error if said memory status information indicates an accessed memory location in said region of memory is in an unallocated state.
Claim 4
Dependent Claim 17 words
The method of claim 1, wherein said allocated state includes an allocated-and-uninitialized state and an allocated-and-initialized state.
Claim 5
Dependent Claim 46 words
The method of claim 3, further comprising the step of signalling an error if a memory access instruction is a read operation and said memory status information indicates a memory location in said region of memory accessed by said read operation is in an allocated-and-uninitialized state.
Claim 6
Dependent Claim 18 words
The method of claim 1, wherein said second set of machine instructions is created in a computer memory.
Claim 7
Dependent Claim 18 words
The method of claim 1, wherein said second set of machine instructions is stored on nonvolatile computer storage.
Claim 8
Dependent Claim 139 words
A computer program product for generating machine instructions including memory access monitoring instructions, comprising: computer code that receives as input a first set of machine instructions, said first set of machine instructions being specific to a computer processor with each machine instruction of said first set corresponding to an instruction executable by said computer processor, said first set of machine instructions including memory access instructions that access a region of memory; computer code that generates a second set of machine instructions from said first set of machine instructions and having additional machine instructions that are memory monitoring instructions, said memory monitoring instructions checking memory status information for said region of memory accessed by said memory access instructions, said memory status information including an allocated state and an unallocated state; and a computer readable medium that stores the computer codes.
Claim 9
Dependent Claim 139 words
A computer program product for generating machine instructions including memory access monitoring instructions, comprising: computer code that receives as input a first set of machine instructions, said first set of machine instructions being specific to a computer processor with each machine instruction of said first set corresponding to an instruction executable by said computer processor, said first set of machine instructions including memory access instructions that access a region of memory; computer code that generates a second set of machine instructions from said first set of machine instructions and having additional machine instructions that are memory monitoring instructions, said memory monitoring instructions checking memory status information for said region of memory accessed by said memory access instructions, said memory status information including an allocated state and an unallocated state; and a computer readable medium that stores the computer codes.
Claim 10
Dependent Claim 35 words
The computer program product of claim 7, further comprising computer code that signals an error if said memory status information indicates an accessed memory location in said region of memory is in an unallocated state.
Claim 11
Dependent Claim 19 words
The computer program product of claim 7, wherein said allocated state includes an allocated-and-uninitialized state and an allocated-and-initialized state.
Claim 12
Dependent Claim 48 words
The computer program product of claim 9, further comprising computer code that signals an error if a memory access instruction is a read operation and said memory status information indicates a memory location in said region of memory accessed by said read operation is in an allocated-and-uninitialized state.
Claim 13
Dependent Claim 20 words
The computer program product of claim 7, wherein said second set of machine instructions is created in a computer memory.
Claim 14
Dependent Claim 20 words
The computer program product of claim 7, wherein said second set of machine instructions is stored on nonvolatile computer storage.
Claim 15
Dependent Claim 16 words
The computer program product of claim 7, wherein said computer readable medium is a computer memory.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-07-09 2000-01-08 2000-07-09 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-07-09 2004-01-08 2004-07-09 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-07-09 2008-01-08 2008-07-09 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag