Visual debugging

Visual debugging

Visualization of computer program state and program execution to facilitate understanding and, if necessary, alteration of the program. Debuggers are universal tools for understanding what is going on when a program is executed. Using a debugger, one can execute the program in a specific environment, stop the program under specific conditions, and examine or alter the content of the program variables or pointers. Traditional command-line oriented debuggers allowed only a simple textual representation of the program variables (program state).

Textual representation did not change even when modern debuggers came with a graphical user interface. Although variable names became accessible by means of menus, the variable values were still presented as text, including structural information, such as pointers and references. Likewise, the program execution is available only as a series of isolated program stops. (Pointers are variables that contain the “addresses” of other variables.) Compared to traditional debuggers, the techniques of visual debugging allow quicker exploration and understanding of what is going on in a program. See Computer programming, Programming languages, Software, Software engineering

The GNU Data Display Debugger (DDD), for example, is a graphical front-end to a command-line debugger, providing menus and other graphical interfaces that eventually translate into debugger commands. As a unique feature, DDD allows the visualization of data structures as graphs. The concept is simple: Double-clicking on a variable shows its value as an isolated graph node. By double-clicking on a pointer, the dereferenced value or the variable pointed is to shown as another graph node, with an edge relating pointer and dereferenced value. By subsequent double-clicking on pointers, the programmer can unfold the entire data structure.

If a pointer points to a value that is already displayed (for example, in a circular list), no new node is created; instead, the edge is drawn to the existing value. Using this alias recognition, the programmer can quickly identify data structures that are referenced by multiple pointers.

In principle, DDD can render arbitrary data structures by means of nodes and edges. However, the programmer must choose what to unfold, as the screen size quickly limits the number of variables displayed. Nonetheless, DDD is one of the most popular debugging tools under Unix and Linux.

References in periodicals archive ?
Using the Mentor Embedded Sourcery CodeBench and award-winning Sourcery Analyzer technology, embedded C/C+ developers can gain valuable insights into system behavior and timing through a visual debugging framework that identifies functional, timing, and performance bottlenecks.
Visual debugging helps developers and business analysts more efficiently find and correct errors in enterprise CEP applications.
Visual debugging allows developers to run the software on the host environment and check for bugs before integrating it on the real time OS.
today announced expanded support for the Universal Verification Methodology (UVM) with comprehensive transaction-level visual debugging.
Developers working on 32- and 64-bit Linux or Windows platforms can now benefit from the same technology that powers the NVIDIA NVPerfHUD performance analysis tool, a robust profiling and visual debugging heads-up display (HUD) program for Direct3D applications supporting Microsoft DirectX 9.
Users will benefit from powerful test scheduling and remote execution support with one-click server setup, as well as UI refinements for easier visual debugging.
The tech, rebranded as Autodesk Gameware Navigation, has been re-made to allow developers full source code access, a more handy application programming interface and remote visual debugging tools.
Anchored by Model Technology's popular ModelSim' simulator, this new product line integrates simulation, graphical capture, project management, visual debugging, and testbench automation into a language -- and platform-independent environment for all levels of design.
Content ETL 2 is easy to use and its advanced features, such as the visual debugging option, make it a unique solution on the market".
We are pleased that our T-engine product helped TransEDA to quickly add advanced visual debugging capabilities.
Full "flat" view of the entire chip allows visual debugging of nets crossing physical block boundaries.
We give EDA tool developers a visual debugging cockpit that saves them time and money, so they can concentrate on their applications.