Debugging Information Priority List for Startup Time Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing debuggers face significant performance issues when debugging large programs, due to time-consuming debug information loading, parsing, and querying, which result in prolonged startup and debugging times.

Innovation Solution

The method involves receiving runtime input about a program to be debugged, obtaining feedback information from similar previously debugged programs, analyzing compiling time and runtime information to determine function status, and generating a priority list of debugging functions. Debugging information is then rearranged and parsed based on this priority list before the program is debugged.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all debugging information is loaded and parsed at startup, then complete debugging functionality is available, but startup time and debugging time increase significantly

Engineering Contradiction:
Improvedebugging functionality completenessVSAvoidstartup time and debugging time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary analysis of debugging information at compile time to identify and prioritize functions that will be frequently accessed during debugging. This preliminary classification allows the debugger to load only essential debug information at startup while maintaining access to complete debugging functionality when needed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The debugging information is segmented into priority levels based on function importance and access frequency. High-priority functions (those likely to be debugged) are loaded immediately, while lower-priority functions are loaded on-demand during the debugging session, reducing initial startup time while ensuring complete functionality.

Inventive Principle:
Principle #1Segmentation

2Loss of information

If debugging information for all functions is loaded, then no debugging information is missing, but memory usage and processing time increase

Engineering Contradiction:
Improvedebugging information completenessVSAvoiddebugging speed
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

Different quality levels of debugging information are provided for different functions based on their priority classification. Frequently accessed functions receive full debugging information loaded immediately, while less important functions have their debug information loaded later or with reduced detail, optimizing both memory usage and debugging speed.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system dynamically adjusts which debugging information is loaded based on runtime conditions and actual debugging needs. As the debugging session progresses and user behavior is observed, the system adapts by loading additional debug information for functions that become relevant, ensuring information completeness while maintaining productivity.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12277443B2Debugging by predict accessing information
Publication Date: 2025.04.15 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US12277443B2 patent drawing
  • US12277443B2 patent drawing
  • US12277443B2 patent drawing

AI summary

A method, computer system, and a computer program product for improving debugging speed by rearranging debugging priority functions. In one embodiment, runtime input may be received about a program to be debugged. Feedback information is obtained about at least one similar program previously debugged. The compiling time information and runtime information are analyzed to determine a status of functions including one or more focused functions that will be used frequently and one or more unreachable functions that may never will be executed. A priority list of debugging functions is generated based on the feedback information, the runtime input and a function status. A plurality of debugging information are rearranged and parsed on the priority list prior to said program being debugged based on said debugging information.