Debugging Information Priority List for Startup Time Reduction
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Loss of information
If debugging information for all functions is loaded, then no debugging information is missing, but memory usage and processing time increase
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.
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.
Data Source
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.


