View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from
t_debug

Join the 15-year community celebration.

Play games and win prizes!

» Learn more

5.0
5.0 | 1 rating Rate this file 0 Downloads (last 30 days) File Size: 3.88 KB File ID: #26666 Version: 1.3

t_debug

by

 

12 Feb 2010 (Updated )

These functions allow for textual debug mode. Hence, debug statements can stay with your code.

| Watch this File

File Information
Description

This function T_DEBUG will turn textual debug mode 'on' or 'off'. This follows the philosophy described by Brian Kernighan and Rob Pike in "The Practice of Programming":

"... we find stepping through a program less productive than thinking harder and adding output statements and self-checking code at critical places. Clicking over statements takes longer than scanning the output of judiciously-placed displays. It takes less time to decide where to put print statements than to single-step to the critical section of code, even assuming we know where that is. More important, debugging statements stay with the program; debugging sessions are transient."

To allow for debugging statements that stay with the program and can be switched on and off, I wrote two very simple Matlab functions
(t_debug.m, print_debug.m). Here is how they work:

>> t_debug on
>> print_debug('t_debug is on');
DEBUG: t_debug is on

>> t_debug
DEBUG state: 1

>> t_debug off
>> print_debug('This should not print');

>> t_debug offff
Warning: USE: debug(mode) with mode='on', 'off', or a numeric value to set debugging to a certain level. You used 'offff'.
> In t_debug at 54

>> t_debug(10)
>> print_debug('t_debug prints up to level 10', 9)
DEBUG: (L=9) t_debug prints up to level 10
>> print_debug('t_debug prints up to level 10 (this won''t print)', 11)
>> print_debug('t_debug prints up to level 10')
DEBUG: t_debug prints up to level 10

>> t_debug
DEBUG state: 10

A test/example is included to demonstrate the functionality.

MATLAB release MATLAB 7.7 (R2008b)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (1)
16 Jun 2016 Glenn Thompson

Ronni introduced me to a version of this early on. A modified version lives on in GISMO, the seismology toolbox for MATLAB (in the debug package). I much prefer this approach (essentially different verbosity levels) to using the MATLAB debugger.

Updates
22 Nov 2010 1.3

Allows for fine grained debugging output by implementing numeric levels.
Includes example (t_debug_test.m) to test functionality and demonstrate use cases.
Uses of t_debug_config.mat for string constants used within t_debug.m and print_debug.m.

Contact us