Nested Breakpoint Visualization and Management in Debug Sessions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional debugging systems face inefficiencies when dealing with nested breakpoints, as developers struggle to navigate and manage them during debugging sessions, often getting caught in nested breakpoints within functions, leading to frustration and inefficiency.

Innovation Solution

A method and system for identifying and handling nested breakpoints, which displays program code with functions and nested breakpoints, allowing users to visualize and disable them through a call graph, enabling efficient navigation and management by highlighting potential breakpoints and providing options to toggle their status based on likelihood and depth.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional breakpoint systems are used to pause execution at nested breakpoints, then debugging can be performed, but developers get caught in nested breakpoints and experience frustration and inefficiency

Engineering Contradiction:
Improvedebugging accuracyVSAvoiddebugging efficiency
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent introduces a visual dimension to breakpoint management by displaying breakpoints in a hierarchical tree structure and providing visual indicators (such as color coding and icons) that show the nesting depth and status of breakpoints. This visual representation allows developers to understand the breakpoint hierarchy at a glance and make informed decisions about which breakpoints to hit, transforming the abstract concept of nested breakpoints into a visually manageable structure.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Solution Approach 2:

The patent introduces an intermediary mechanism in the form of a breakpoint hierarchy indicator and visual display system that mediates between the debugger and the nested breakpoints. This intermediary provides developers with information about breakpoint nesting depth, likelihood of being reached, and current status, enabling them to make intelligent decisions without manually stepping through each level of nesting.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If developers manually step through program code to debug, then they can examine execution state, but they get caught in nested breakpoints within functions

Engineering Contradiction:
Improveexecution state inspectionVSAvoidtime to reach desired breakpoint
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary analysis of the program code to automatically determine the hierarchy of nested breakpoints, their depth levels, and the likelihood of being reached during execution. This preliminary information is displayed to developers before they start debugging, allowing them to plan their debugging approach and skip unnecessary nested breakpoints, thereby saving time without sacrificing execution state inspection capability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent provides continuous feedback to developers during debugging sessions by displaying the current breakpoint hierarchy, indicating which breakpoints have been hit, and showing the nesting depth of each breakpoint. This feedback mechanism helps developers understand their current position in the code hierarchy and makes informed decisions about which breakpoints to hit next, reducing time loss while maintaining precise execution state inspection.

Inventive Principle:
Principle #23Feedback

3Productivity

If predefined ranks are used to skip breakpoints, then some nested breakpoints can be avoided, but the system lacks intelligence in determining which breakpoints are likely to be reached

Engineering Contradiction:
Improvedebugging speedVSAvoidbreakpoint reachability information
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent enables the debugging system to automatically analyze the program code structure and execution flow to determine which breakpoints are likely to be reached during normal execution. The system serves itself by generating this reachability information without requiring manual input from developers, and then uses this information to provide intelligent suggestions about which breakpoints to hit, thereby improving debugging speed while preserving important reachability information.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10073759B2Identification and handling of nested breakpoints during debug session
Publication Date: 2018.09.11 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10073759B2 patent drawing
  • US10073759B2 patent drawing
  • US10073759B2 patent drawing

AI summary

Provided are techniques for identification and handling of nested breakpoints during debug session. Program code having functions, nested breakpoints, and an indication of whether each of the breakpoints is likely to be reached is displayed, in a visualization. In response to receiving input that selects a function from the functions, a call graph is displayed for the functions in the program code to enable viewing where each of the nested breakpoints is located in the program code with reference to the functions. An option to disable a nested breakpoint of the nested breakpoints for a current execution of the program code is provided. In response to receiving input that selects the option, the nested breakpoint is disabled.