GDI Verifier Tool for Resource Leak Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing technologies fail to adequately detect and address resource leaks, such as GDI and USER object leaks, leading to performance issues like increased CPU utilization and memory consumption, and can cause application or system crashes, due to their limitations in instrumentation and user interface usability.

Innovation Solution

A system and method for intelligent resource leak detection that intercepts communications between applications and GDIs, providing a GDI verifier tool with a verification layer to monitor code, detect resource leaks by tracing events, and present call stacks, handle categories, and counts of active and terminated reference indicators, offering an intuitive user interface and automated functionality.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If existing profiler technologies are used to detect resource leaks, then some resource usage information can be obtained, but they fail to adequately detect GDI and USER handle leaks and lack intuitive user interfaces

Engineering Contradiction:
Improveresource leak detection accuracyVSAvoiduser interface usability
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The patent introduces an intermediary verification layer that intercepts communications between applications and GDI/USER subsystems. This layer acts as a mediator to monitor handle operations, detect leaks with high precision, and present information through an intuitive user interface without requiring users to understand complex profiling mechanisms.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of information

If invasive instrumentation is used to monitor resource usage, then detailed tracking information can be obtained, but system performance is degraded and complexity increases

Engineering Contradiction:
Improveresource usage tracking completenessVSAvoidinstrumentation complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The verification layer serves as an intermediary that intercepts handle operations between applications and the GDI/USER subsystems. This approach provides complete tracking information without requiring invasive instrumentation within application code, thereby reducing system complexity while maintaining comprehensive monitoring capability.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of time

If existing technologies are used without automated functionality, then manual analysis is required, but this increases time consumption and reduces productivity

Engineering Contradiction:
Improveresource leak analysis timeVSAvoidresource leak detection efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The system implements automated feedback mechanisms that continuously monitor handle operations, compare resource allocation against termination events, and automatically generate reports about potential leaks. This feedback loop eliminates manual analysis time and significantly improves detection efficiency by providing real-time insights into resource management issues.

Inventive Principle:
Principle #23Feedback

Data Source

PatentEP4085336B1Computer resource leak detection
Publication Date: 2024.05.15 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP4085336B1 patent drawingFigure 1
  • EP4085336B1 patent drawingFigure 2
  • EP4085336B1 patent drawingFigure 3

AI summary

Various embodiments discussed herein enable intelligent resource leak detection and associated user interface. In some aspects, if a kernel sends a tracing event (e.g., an ETW event) after a process or application has been requested to be shut down but before the process has actually been shut down, a resource leak can be detected. This is because the application should have requested the reference indicator to be removed in memory before the tracing event, as opposed to the kernel acting alone without an application request to remove the reference indicator. If a reference indicator has not been requested to be removed by the time this tracing event occurs, then it is indicative of the application never having sent a request to remove the reference indicator, which is indicative of a resource leak.