t_debug
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.
Cite As
Ronni Grapenthin (2024). t_debug (https://www.mathworks.com/matlabcentral/fileexchange/26666-t_debug), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
Version | Published | Release Notes | |
---|---|---|---|
1.3.0.0 | Allows for fine grained debugging output by implementing numeric levels.
|
||
1.0.0.0 |