← Back to Patent Explorer
US5408650A Expired / Lapsed US ⏱️ 0.0 years remaining

Memory analysis system for dynamically displaying memory allocation and de-allocation events associated with an application program

Assignee: Hewlett Packard Development Co LP
•
Filing: 1993-06-29
•
Granted: 1995-04-18
•
Expires: 2013-06-29
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A memory analysis system analyzes memory "events," i.e., the allocation or deallocation of memory locations, associated with the execution of an application program and produces a graphic display associating dynamically allocated memory segments with various program sub-routines. The system communicates with a debugger to trace the memory allocation routines back through the source code version of the application program and produce a call-stack, which lists the various source code sub-routines associated with the allocation of the segment and makes available the applicable lines of the source code. The system assigns to each of these locations a segment type, which relates to a program sub-routine that calls for it. The system includes a kernel processor that replaces calls to memory allocation and deallocation routines in the program with substitute routines that include instructions to notify the kernel processor each time a memory event occurs. The kernel processor monitors the response from the operating system and sends to a main processor included in the system a message that indicates the type event, identifies the memory locations involved and includes related information from the debugger tables which identifies the associated source code sub-routines. The main processor then controls the graphic display of the information. The kernel and the main processors communicate through a section of global memory that is set up as one or more circular queues. The kernel processor suspends the execution of the application program whenever the memory event queue is full, to maintain the application program and the display in relative synchronism.

Inventors

  • 👤 Mark E. Arsenault

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 14:14
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/3698; G06F11/30; G06F11/32; G06F11/323; G06F11/34; G06F11/3466; G06F11/362; G06F11/3632

Claims Analysis

Total Claims: 17
Claim 1
Independent Claim 122 words
A memory analysis system for displaying memory allocation and deallocation events associated with an application program, the memory analysis system including: A. a kernel processor for monitoring memory events and determining (i) if an event is an allocation or deallocation, (ii) the memory locations included in the event and (iii) the application program routines associated with the event; B. a main processor for classifying allocated memory locations by segment type, by associating each memory event and the locations corresponding thereto with a routine in the application program; C. a display unit for displaying a graphic display of the allocations of memory locations by segment types; D. the main processor sending to the display unit information designating allocated memory locations by segment types.
Claim 2
Dependent Claim 122 words
A memory analysis system for displaying memory allocation and deallocation events associated with an application program, the memory analysis system including: A. a kernel processor for monitoring memory events and determining (i) if an event is an allocation or deallocation, (ii) the memory locations included in the event and (iii) the application program routines associated with the event; B. a main processor for classifying allocated memory locations by segment type, by associating each memory event and the locations corresponding thereto with a routine in the application program; C. a display unit for displaying a graphic display of the allocations of memory locations by segment types; D. the main processor sending to the display unit information designating allocated memory locations by segment types.
Claim 3
Dependent Claim 109 words
The memory analysis system of claim 1 further including: a. in the main processor i. means for tracing a memory allocation command back through related routines in the application program to produce a call-stack, which is a list of the names of the associated routines; ii. means for determining applicable lines of source code from the program routines listed in the call-stack, the main processor sending to the display unit information that associates a segment type with a call-stack and with lines of source code, and b. in the display unit, means for displaying the call-stack and the lines of source code associated with a selected allocated memory segment.
Claim 4
Dependent Claim 29 words
The memory analysis system of claim 2 further including in the display unit means for depicting the allocated memory locations in a map, with locations designated by segment type.
Claim 5
Dependent Claim 107 words
The memory analysis system of claim 3 further including: a. designation means for designating routines for which segment type information is to be temporarily omitted from the display, the designation means sending information to the main processor which identifies the routines so designated; and b. in the main processor, means for refraining temporarily from sending to the the display unit instructions to depict particular memory locations as the segments types designated as omitted by the designation means, the main processor, as necessary, classifying locations previously classified as segment types corresponding to the routines designated as omitted as types corresponding to other routines included on the associated call-stacks.
Claim 6
Dependent Claim 41 words
The memory analysis system of claim 4 further including a. means for designating routines for which the segment type information is to be eliminated from the display, b. in the main processor means for eliminating information about the routines so designated.
Claim 7
Dependent Claim 79 words
The memory analysis system of claim 1 further including: a. in the main processor i. means for determining the amount of memory allocated by segment type, as a percentage of total memory allocated to the application program; ii. means for determining, as a percentage of a total number of memory events associated with the application program, the number of memory events associated with a memory segment type; and b. in the display means, means for graphically displaying the percentages.
Claim 8
Dependent Claim 154 words
The memory analysis system of claim 1 further including: a. in the main processor i. processor synchronization means for synchronizing the operations of the main processor to the memory events associated with the application program, wherein the processor synchronization means communicates with the kernal processor, which suspends the execution of the application program, while the main processor continues to process information relating to memory events, the processor synchronization means notifying the kernal processor to allow the application program to proceed when information relating to no more than a predetermined number of memory events requires processing by the main processor; and ii. display synchronization means for synchronizing the operations of the display unit and the operations of the main processor, wherein the display synchronization means prevents the main processor from sending display update information to the display unit if more than a predetermined number of the messages sent previously require processing by the display unit.
Claim 9
Dependent Claim 114 words
The memory analysis system of claim 1 further including a. a debugger for maintaining a debugger table associating symbols and locations in a compiled executable version of the application program to symbols and locations in a source code version of the application program; b. in the kernal processor, i. means for entering the debugger table and formulating a table which relates symbols and locations in an image file version of the application program to symbols and locations in the source code version of the application program; and ii. means for utilizing the symbol and location information in the table so formulated to associate allocated memory locations with source code routines in the application program.
Claim 10
Independent Claim 81 words
A method of producing a display of dynamically allocated memory locations associated with an application program, including the steps of: A. monitoring memory events; B. determining for each event the memory locations involved and the program routine associated with allocated memory location; C. classifying allocated memory locations corresponding to a memory event by segment type, which corresponds to the associated routine in the application program; and C. displaying a graphic depiction of allocated memory locations, depicting the locations by segment types.
Claim 11
Independent Claim 81 words
A method of producing a display of dynamically allocated memory locations associated with an application program, including the steps of: A. monitoring memory events; B. determining for each event the memory locations involved and the program routine associated with allocated memory location; C. classifying allocated memory locations corresponding to a memory event by segment type, which corresponds to the associated routine in the application program; and C. displaying a graphic depiction of allocated memory locations, depicting the locations by segment types.
Claim 12
Dependent Claim 81 words
The method of producing a display of dynamically allocated memory locations of claim 9 further including the steps of: D. tracing a call to a memory allocation routine through related routines in the application program to produce a call-stack, which is a list of associated routines; E. associating lines of source code from selected routines named in the call-stack with the allocated memory segments, and F. displaying the call-stack and lines of source code associated with a selected allocated memory segment.
Claim 13
Dependent Claim 36 words
The method of producing a display of dynamically allocated memory locations of claim 9 further including the step of graphically depicting allocated memory segments in a map in which each segment is depicted by segment type.
Claim 14
Dependent Claim 50 words
The method of producing a display of dynamically allocated memory locations of claim 11 further including the steps of: a. designating program routines for which segment information is to be omitted from the map; and b. refraining from including in the display information relating to the segments designated as omitted.
Claim 15
Dependent Claim 43 words
The method of producing a display of dynamically allocated memory locations of claim 12 further including the step of assigning to each memory location a segment type which corresponds to a program routine on the associated call-stack, which is not designated as omitted.
Claim 16
Dependent Claim 88 words
The method of producing a display of dynamically allocated memory locations of claim 9 further including the steps of: a. determining for each segment type the amount of memory allocated by segment type, as a percentage of total memory allocated to the application program; b. determining, as a percentage of a total number of memory events associated with the application program, the number of memory events associated with each segment type; and c. including in the display a depiction of the percentages determined in steps a and b.
Claim 17
Dependent Claim 115 words
The method of producing a display of dynamically allocated memory locations of claim 9 further including the steps of: a. synchronizing the operations of the main processor to the memory events associated with the application program, wherein the execution of the application program is suspended while information relating to more than a predetermined number of memory events requires processing by the main processor; and b. synchronizing the operations of the display means and the operations of the main processor, wherein the operations of the main processor are controlled to prevent the main processor from sending display information messages to the display unit if more than a predetermined number of previously-sent display information messages require processing.

References Cited (Backward Citations)

US5343560A Cited
US5335323A Cited
US5067072A Cited
US5088036A Cited
US5129084A Cited
US5187790A Cited
US5193180A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1998-04-17 1998-10-17 1999-04-18 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2002-04-17 2002-10-17 2003-04-18 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2006-04-17 2006-10-17 2007-04-18 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag