Text-based programming has led to a host of text-based debugging tools, from command-line interface debuggers to graphical integrated development environments (IDEs) that are still essentially text-based. Arrays and structures may be displayed in windows, but they’re textbased at heart. This isn’t to say that graphics have been completely ignored, though. DSP data can be plotted with tools like Analog Devices’ VisualDSP+ and Texas Instruments’ Code Composer Studio.
Graphics presentation comes into play in presenting and analyzing trace results. Express Logic’s TraceX provides realtime analysis of system events and context switching that can help identify problem areas, deadlock, and race conditions more easily than relying on breakpoints and print statements (Fig. 1). It also can hook into application programming interface (API) calls without requiring debug versions of an application.
Green Hills Software’s TimeMachine provides this type of graphical trace facility as well, but it also adds the ability to step forward and backward through the code that is trace-setting virtual breakpoint and performing path analysis using the Path- Analyzer tool. TimeMachine works with hardware trace systems, and TraceEdge provides software support for devices without integrated trace hardware.
DRAW YOUR OWN CONCLUSIONS
Better presentation of internal application information in real time often can be accomplished by turning to the graphical interfaces that most applications present to a user, including controls like buttons and sliders. Developers could do this, and they frequently do so for applications that provide a graphical user interface (GUI). The task is often daunting, though, for what are often considered “simple” debugging chores. Still, there are significant benefits to having better debugging tools.
This is where tools like Micrium’s uC/ Probe comes to the rescue (Fig. 2). It allows the easy creation of a user interface and linkage between the controls and internal application functions and data structures. It also lets developers choose the kind of display that best suits the data, and it does so without major modification of the application.
PART OF THE VISUAL PLAN
Tools like uC/Probe are starting to bring facilities that National Instruments’ Lab- VIEW have known for quite a while (Fig. 3). LabVIEW combines a graphical programming window with a matching user interface window where program objects are automatically linked to controls on the user interface window.
Developers benefit from LabVIEW’s default static definition of virtual instruments (VIs), providing a one-to-one relationship between the VI code and user interface. This tends to make a similar approach for languages like C/C++ and Java a little more challenging but not impossible, as NI’s object-oriented enhancements to LabVIEW have shown as well as tools like uC/Probe that target C/C++.