Claims Analysis
Total Claims: 19
Claim 1
Independent Claim
266 words
A method for detecting memory leaks in a program executing on a computer system using memory management functions, said memory management functions operative to query and maintain a memory allocation table for storing information regarding currently allocated blocks of computer memory in said computer system including corresponding requesting file information and de-allocation information, said method comprising the steps of: allocating a block of computer memory for a function in said program requesting said block of computer memory, said function being a basic programming unit of said program; specifying said de-allocation information for said block of computer memory being allocated, said de-allocation information indicative of when said currently allocated blocks of computer memory should be de-allocated, wherein the step of specifying said de-allocation information for said block of computer memory being allocated includes specifying an expiration event for said block of computer memory being allocated, said expiration event being an occurrence indicative of when said block of computer memory should be de-allocated, and assigning a unique numerical values as said expiration event in said memory allocation table, said unique numerical value indicative of a type of said expiration event, said type of expiration event includes an expiration event where an expiration should never occur; storing said requesting file information and de-allocation information corresponding to said function requesting said block of computer memory in said memory allocation table using said memory management functions, querying said memory allocation table using said memory management functions for said currently allocated blocks of computer memory having de-allocation events thereby indicating corresponding said currently allocated blocks of computer memory should have been de-allocated.
Claim 2
Independent Claim
266 words
A method for detecting memory leaks in a program executing on a computer system using memory management functions, said memory management functions operative to query and maintain a memory allocation table for storing information regarding currently allocated blocks of computer memory in said computer system including corresponding requesting file information and de-allocation information, said method comprising the steps of: allocating a block of computer memory for a function in said program requesting said block of computer memory, said function being a basic programming unit of said program; specifying said de-allocation information for said block of computer memory being allocated, said de-allocation information indicative of when said currently allocated blocks of computer memory should be de-allocated, wherein the step of specifying said de-allocation information for said block of computer memory being allocated includes specifying an expiration event for said block of computer memory being allocated, said expiration event being an occurrence indicative of when said block of computer memory should be de-allocated, and assigning a unique numerical values as said expiration event in said memory allocation table, said unique numerical value indicative of a type of said expiration event, said type of expiration event includes an expiration event where an expiration should never occur; storing said requesting file information and de-allocation information corresponding to said function requesting said block of computer memory in said memory allocation table using said memory management functions, querying said memory allocation table using said memory management functions for said currently allocated blocks of computer memory having de-allocation events thereby indicating corresponding said currently allocated blocks of computer memory should have been de-allocated.
Claim 3
Dependent Claim
42 words
The method recited in claim 1 wherein the step of querying said memory allocation table includes: searching said memory allocation table using said memory management functions for said currently allocated blocks of computer memory having predetermined one or more said expiration events.
Claim 4
Dependent Claim
30 words
The method of claim 1, wherein said requesting file information includes filenames and line numbers indicative of where the request was made for said currently allocated blocks of computer memory.
Claim 5
Dependent Claim
81 words
The method recited in claim 1 wherein the step of specifying said de-allocation information for said block of computer memory being allocated includes: specifying a dependent pointer for said block of computer memory being allocated, said dependent pointer operable to point to a currently allocated block of computer memory, said dependent pointer indicating that said block of computer memory being allocated should be de-allocated prior to de-allocation of said currently allocated block of computer memory referred to by said dependent pointer.
Claim 6
Dependent Claim
51 words
The method recited in claim 4 wherein the step of querying said memory allocation table includes: searching said memory allocation table using said memory management functions for said currently allocated blocks of computer memory having said dependent pointers pointing to said currently allocated blocks of computer memory about to be de-allocated.
Claim 7
Dependent Claim
46 words
The method recited in claim 1 comprising the additional step of: listing said filenames and line numbers of said currently allocated blocks of computer memory corresponding to said currently allocated blocks of computer memory found in said memory allocation table subsequent to said step of querying.
Claim 8
Dependent Claim
34 words
The method recited in claim 1 wherein the step of allocating said computer memory includes: returning an address of said block of computer memory being allocated to said program executing on said computer system.
Claim 9
Dependent Claim
35 words
The method recited in claim 1 wherein said memory management functions are selected from the group consisting of malloc(), memory -- trigger(), memory -- register(), free(), calloc(), realloc(), memory -- malloc() and memory -- calloc().
Claim 10
Dependent Claim
27 words
The method as recited in claim 1 wherein said type of expiration event further includes an expiration event where memory allocations are associated only with dependent pointers.
Claim 11
Independent Claim
227 words
An apparatus for detecting memory leaks in a program executing on a computer system having blocks of computer memory, wherein said program comprise at least one function, said apparatus comprising of: a virtual memory manager for allocating blocks of computer memory for said functions requesting said blocks of computer memory; a memory allocation table operative to store requesting file information and de-allocation information corresponding to currently allocated blocks of computer memory, said de-allocation information indicative of when said currently allocated blocks of computer memory should be de-allocated; means for specifying de-allocation information for said blocks of computer memory being allocated in said memory allocation table, wherein said means for specifying de-allocation information includes means for specifying expiration events in said memory allocation table for said blocks of computer memory being allocated, said expiration events being occurrences that indicate when said blocks of computer memory should have been de-allocated, and means for assigning a unique numerical values as said expiration event in said memory allocation table, said unique numerical value indicative of a type of said expiration event, said type of expiration event includes an expiration event where an expiration should never occur; and debugging memory management means for querying said memory allocation table for said currently allocated blocks of computer memory having de-allocation events indicating corresponding said currently allocated blocks of computer memory should have been de-allocated.
Claim 12
Independent Claim
227 words
An apparatus for detecting memory leaks in a program executing on a computer system having blocks of computer memory, wherein said program comprise at least one function, said apparatus comprising of: a virtual memory manager for allocating blocks of computer memory for said functions requesting said blocks of computer memory; a memory allocation table operative to store requesting file information and de-allocation information corresponding to currently allocated blocks of computer memory, said de-allocation information indicative of when said currently allocated blocks of computer memory should be de-allocated; means for specifying de-allocation information for said blocks of computer memory being allocated in said memory allocation table, wherein said means for specifying de-allocation information includes means for specifying expiration events in said memory allocation table for said blocks of computer memory being allocated, said expiration events being occurrences that indicate when said blocks of computer memory should have been de-allocated, and means for assigning a unique numerical values as said expiration event in said memory allocation table, said unique numerical value indicative of a type of said expiration event, said type of expiration event includes an expiration event where an expiration should never occur; and debugging memory management means for querying said memory allocation table for said currently allocated blocks of computer memory having de-allocation events indicating corresponding said currently allocated blocks of computer memory should have been de-allocated.
Claim 13
Dependent Claim
42 words
The apparatus recited in claim 10 wherein said debugging memory management means for querying said memory allocation table includes: means for searching said memory allocation table for said currently allocated blocks of computer memory having predetermined one or more said expiration events.
Claim 14
Dependent Claim
69 words
The apparatus recited in claim 10 wherein said means for specifying de-allocation information includes: means for specifying dependent pointers for said blocks of computer memory being allocated, said dependent pointers operable to point to currently allocated blocks of computer memory indicating that said blocks of computer memory being allocated should be de-allocated prior to de-allocation of said currently allocated blocks of computer memory referred to by said dependent pointers.
Claim 15
Dependent Claim
49 words
The apparatus recited in claim 12 wherein said debugging memory management means for querying said memory allocation table includes: means for searching said memory allocation table for said currently allocated blocks of computer memory having said dependent pointers pointing to said currently allocated blocks of memory to be de-allocated.
Claim 16
Dependent Claim
37 words
The apparatus recited in claim 10 wherein said virtual memory manager includes: means for returning addresses of said blocks of computer memory being allocated by said virtual memory manager to said programs executing on said computer system.
Claim 17
Dependent Claim
30 words
The apparatus of claim 10, wherein said requesting file information includes filenames and line numbers indicative of where the request was made for said currently allocated blocks of computer memory.
Claim 18
Dependent Claim
47 words
The apparatus recited in claim 10 further comprising of: means for listing said filenames and line numbers of said currently allocated blocks of computer memory corresponding to said currently allocated blocks of computer memory found by said debugging memory management means when querying said memory allocation table.
Claim 19
Dependent Claim
27 words
The apparatus as recited in claim 10 wherein said type of expiration event further includes an expiration event where memory allocations are associated only with dependent pointers.