Automatically resource leak diagnosis and detecting process within the operating system
First Claim
1. A method of determining a cause of a leaked resource in a computer system comprising a processor configured according to computer executable instructions and a memory physically configured to store computer executable instructions comprising physically configuring a processor for:
- setting a leak trigger for starting leak detection;
if the leak trigger is activated;
starting leak detection when an application begins;
tracking resource allocations for the leaked resource; and
matching each leaked resource to a corresponding allocation call stack; and
if the leak trigger is not activated;
repeating the computer executable instructions;
generating a leak report of resource leak data wherein the leak report is stored at least one of locally or communicated to a local aggregation database or remote aggregation database; and
comprising at least one of automatically reclaiming the leaked resource and creating a fix to the leaked resource and applying the created fix automatically.
2 Assignments
0 Petitions
Accused Products
Abstract
The resource leak detector attempts to identify the causes of resource leaks and fix the causes if possible. At a minimum, the located resource leaks are reported to an operating system manufacture for additional study and possible correction, either by the operating system manufacturer or the application manufacturer that is causing the resource leak. In an embodiment, in operation, a leak trigger for starting leak detection is started. If the leak trigger is activated, leak detection is started when an application begins. Resource allocations are tracked for the leaked resource and each leaked resource is matched to a corresponding allocation call stack. A type of the leaked resource may be identified. The leak detection and the leak trigger may be controlled according to at least one of a local policy and a global policy. The local and the global policy may be updated dynamically such as by using aggregated occurrences of applications that met the local policy or by matching a plurality of distinct types of leaked resources to the same call stack. A leak report may be generated of resource leak data where the leak report is stored locally or communicated to a local aggregation database or remote aggregation database. The leak report may include total leaked allocations, total size of leaked allocations, total outstanding allocations, total size of outstanding allocations and matched allocation call stacks. The leaked resource may be automatically reclaimed and a fix to the leaked resource may be created and applied automatically.
33 Citations
17 Claims
-
1. A method of determining a cause of a leaked resource in a computer system comprising a processor configured according to computer executable instructions and a memory physically configured to store computer executable instructions comprising physically configuring a processor for:
-
setting a leak trigger for starting leak detection; if the leak trigger is activated; starting leak detection when an application begins; tracking resource allocations for the leaked resource; and matching each leaked resource to a corresponding allocation call stack; and
if the leak trigger is not activated;repeating the computer executable instructions;
generating a leak report of resource leak data wherein the leak report is stored at least one of locally or communicated to a local aggregation database or remote aggregation database; and
comprising at least one of automatically reclaiming the leaked resource and creating a fix to the leaked resource and applying the created fix automatically. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of analyzing leak report data for a computer system comprising a processor configured according to computer executable instructions and a memory physically configured to store computer executable instructions comprising physically configuring a processor for:
-
aggregating leak reports for the same component across at least one of multiple applications, users and machines; providing the leak reports to developers of the applications; comparing similar call stacks across reports from multiple users; and performing data flow analysis on the source code identified in the stacks to identify the leaked local variables;
prioritizing leak reports based on at least one of the factors comprising application usage, application install base, size of the leak, number of components that use the targeted component, the number of leaked resource, the type of the leaked resource, the frequency of occurrence of the leaked resources. - View Dependent Claims (11)
-
-
12. A method of creating an algorithm to limit performance costs of a leak detector in a computer system comprising a processor configured according to computer executable instructions and a memory physically configured to store computer executable instructions comprising physically configuring a processor for:
-
limiting usage of computing overhead; maintaining a unique call stack database and all associated data structures in a heap and the heap is maintained in the target process'"'"'s address space; and storing in the call stack database only call stacks of outstanding blocks;
generating a leak report of resource leak data wherein the leak report is stored at least one of locally or communicated to a local aggregation database or remote aggregation database; and
comprising at least one of automatically reclaiming the leaked resource and creating a fix to the leaked resource and applying the created fix automatically. - View Dependent Claims (13, 14, 15, 16, 17)
-
Specification