Attributed Debugging for Object Display Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional debuggers struggle to effectively display meaningful information to developers, particularly when dealing with large and complex objects, due to their inability to analyze arbitrary objects and determine what information is most relevant for viewing.

Innovation Solution

The introduction of an attributed debugging system that allows developers to specify how information is displayed during debugging through the use of attributes such as DebuggerDisplayAttribute and DebuggerBrowsableAttribute, along with an expression evaluator that determines what information to show based on these attributes, overridden ToString methods, and subtype checks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If conventional GUI debuggers display all object data, then complete information is provided, but the display becomes overwhelming and difficult to navigate

Engineering Contradiction:
Improveinformation completenessVSAvoiddisplay navigability
Core Design Contradiction:
Loss of informationVSEase of operation

Solution Approach 1:

The patent segments object data display into hierarchical levels, allowing developers to view summaries at the top level and drill down into detailed fields and properties only when needed. This segmentation transforms the overwhelming monolithic display into manageable hierarchical sections, resolving the contradiction between providing complete information and maintaining navigability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The debugger display dynamically adapts its content based on the object type being examined. The system automatically determines which fields and properties to display based on runtime type information, making the display context-aware and adaptable rather than static and uniform, thus improving navigability while preserving information completeness.

Inventive Principle:
Principle #15Dynamics

2Loss of information

If conventional debuggers display detailed object information, then comprehensive data is available, but the debugger cannot determine what the developer is really interested in viewing

Engineering Contradiction:
Improvedata comprehensivenessVSAvoiddisplay customization
Core Design Contradiction:
Loss of informationVSAdaptability or versatility

Solution Approach 1:

The system performs preliminary analysis of object types and their associated metadata before displaying data. By pre-determining which fields and properties are relevant based on the object's type definition, the debugger proactively filters and organizes information in a way that anticipates developer needs, resolving the contradiction between comprehensive data availability and intelligent adaptability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The debugger incorporates feedback mechanisms that learn from developer interactions with the display. By monitoring which fields and properties developers examine most frequently, the system refines its display strategy to better predict and present relevant information, enhancing both adaptability and information completeness over time.

Inventive Principle:
Principle #23Feedback

3Measurement precision

If developers manually review software code to find bugs, then detailed analysis is possible, but significant time and labor resources are expended

Engineering Contradiction:
Improvebug detection accuracyVSAvoiddebugging time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent replaces the manual mechanical process of code review with an automated debugger system that executes code step-by-step and automatically displays relevant runtime data. This substitution maintains high bug detection accuracy through systematic analysis while dramatically reducing the time and labor required compared to manual review methods.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The debugger acts as an intermediary between the developer and the code being debugged. It automatically performs the tedious work of executing code, capturing runtime state, and presenting relevant information, allowing the developer to focus on analysis rather than manual data gathering, thus reducing time loss while maintaining detection precision.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7716644B2Attributed debugging
Publication Date: 2010.05.11 ZHIGU HLDG
  • US7716644B2 patent drawing
  • US7716644B2 patent drawing
  • US7716644B2 patent drawing

AI summary

A system and method facilitating attributed debugging is provided that facilitates a developer of an object to determine what information a debugger displays. An expression evaluator is provided. The system can further include, optionally, a debuggee (e.g., process to be debugged). The debuggee includes attribute(s) which are employed by the debugger to facilitate debugging of the application—“attributed debugging.” This allows a developer of a type to declaratively indicate how information is to be displayed during debugging. Attributed debugging thus allows the manipulation of the view of data in the debugger by allowing the type author annotations with which they can control.