Version 34 of debugging

Updated 2014-02-19 13:04:15 by jbr

Summary

Debugging is the process diagnosing and correcting unexpected behaviour of programs.

See Also

Category Debugging
IDE
many of which provide debugging functionality along with other features
Static syntax analysis

Tools for Dynamic Analysis

a basic debugger
a debugger with syntax highlighting using ctext
A minimal debugger
atkdebugger
A patch for Tcl 8.5 is available at the website
d: A handy little debugging proc
by Ed Suominen, for development of PRIVARIA [L1 ], an end-user TCL app with a lot going on inside.
a minimal debugger
implements breakpoints, allowing to run any Tcl command, including inspecting and setting the local variables...
Errx
a mixed debug-message / stack backtrace introspection "puts"
gdb
Guarded proc
RS: monitors or prevents redefining an existing proc
Tkinspect
a stand alone application that queries a running Tk application and then displays its state. This allows you to display current variable values and modify procs or variables. A Tix-enabled version of it is in TixInspect. The Tcl Dev Kit provides an enhanced version of TkInspect since release 2.5.
TkCon
[L2 ]: by Jeff Hobbs. A great way to interact with a running Tcl/Tk application. It can be attached to any Tcl/Tk interpreter or namespace and allows any modification. This application comes bundled with ActiveTcl and therefore also with Tcl Dev Kit. Sports facilities such as idedebug and observe , which provide sophisticated breakpoint and tracing facilities, and hot errors, which displays the source of the proc in dig-down style
INSPECT app
valgrind
Electric Fence
PED
RamDebugger
Yet another Tcl debugger
Tagma Debugger
A rewrite of Yet another Tcl debugger.
TclPro
a popular open-source debugger originally sold by Scriptics
Tuba
providing source code viewing as you step thru the code, breakpoints on specific lines and procs, and ability to set watchpoints on variables
TDebug
a Tk based debugger that is sourced into your script. Works conceptually like the emacs-lisp debugger. An updated version of it is in TixDebug.
The 'tracecommand' extension
based on a patch [L3 ] [does Vince Darley have a more recent version of this?] to the Tcl core, is available from the scriptics bug database [we need a URL here]. It can be used to dump before/after command+argument+result evaluations both globally or only inside a given command or procedure. It is similar to the 'trace dump' facility available in the Tcl-scripted MacOS editor 'Alpha'.
jTcl
a Java-like object interface which provides debugging facilities. escargo 2004-02-04: dead link.

Publications

A Debugging Primer
an excerpt Debugging: The 9 Indispensable Rules For Finding Even the Most Elusive Software and Hardware Problems, David J. Agans
How to be a Programmer: A Short, Comprehensive, and Personal Summary, Robert L. Read, 2002
PYK 2012-12: a quick glance-through indicates that this is worth the read. Others have received it positively as well.

See Also

C compiled image processing on an interactive Bwise canvas
Commonly encountered problems in Tcl
Debugging Aid For Production Code
Debugging Expect programs
debug with trace
Dynamic Debugger
a strange breed. For whatever reason, many programmers are either unfamilar or dissatisfied with most of the products in this category.
Debugging via introspection
Effective ways to request help with Tcl-related problems
Favorite debugging techniques applicable to Tcl
Help! My Tcl application just crashed!
How to debug memory faults in Tcl and extensions
Leak Hunt (C level)
Memory introspection
important when trying to find bugs going into the C-level, especially hard to pin-down memory trouble
regular expression debugging tips
Static syntax analysis
Static code checkers are tools which read your Tcl code and attempt to identify either real, or potential, problems. This is similar to the Unix lint command.
Steppin' out
uses Tcl's own command tracing
   [traceproc helper]
traceback
what debugging tools are available to a Tcl programmer
Whole-Script Tracing

Components with Debugging Features

Tcl itself
provides enhanced command tracing since release 8.4 (See TIP #62). Example of usage is at Steppin' out.
BLT
comes with several useful debugging commands.
TclX
comes with commands for profiling and debugging facilities, for example cmdtrace.
SNTL
includes a debugging message system.
Source Navigator
an IDE with code comprehension features. It is written in Tcl/Tk/itcl, but allows you to understand code written in a wide variety of languages.

Projects

GSoC Idea: Debugging tools for NRE