Those of you who read my colleagues' blog Ken & Mike on the MATLAB Desktop may have already been introduced to today's pick; it comes to us from fellow MathWorker and blogger Ken Orr (his first official submission--welcome to the File Exchange, Ken!).
Back in mid-July, Ken wrote a blog post on Muting Breakpoints. He described how he uses breakpoints to help him debug his code, and he wrote that he wanted the ability to quickly disable (and re-enable) those breaks. To solve the problem, Ken wrote, and showed the code for, dbmute and dbunmute. I adopted the functions immediately--they've quickly become an integral part of my own code development workflow. I also commented on that post, suggesting that these functions belong on the MATLAB Central File Exchange, and hinting about their destiny as "Picks of the Week." Good to my word, today's Pick honors Ken's submission.
One side note: Ken suggested in a final thought that it might be useful to create shortcuts to the functions:
I took it one step farther, and implemented a single shortcut that toggles my breakpoints:
Anyone care to venture a guess how I did that?
Get the MATLAB code
Published with MATLAB® 7.8
5 CommentsOldest to Newest
Here’s how I would write the toggle shortcut:
s = dbstatus('-completenames'); mute = true; for i = 1:length(s) if (strcmp(s(i).expression,'false')) mute = false; break; end end if (mute) dbmute disp('Muting all breakpoints'); else dbunmute disp('Unmuting all breakpoints'); end
Nice! My version simply stored the mute status in, and queried from, the appdata of the MATLAB root:
muteStatus = getappdata(0,'dbmuteStatus'); if isempty(muteStatus) || ~muteStatus setappdata(0,'dbmuteStatus',true); dbmute else setappdata(0,'dbmuteStatus',false); dbunmute end
But your version works well, too. If you’ll respond directly to my email…HINT:
char(cumsum([98 16 -13 15 0 -70 69 -11 7 -10 7 7 -4 -1 -46 45 -12 19 -12 15 -8 3 -7 8 -69 53 12 -2]))
with your snail mail address, I’d like to send you a small token of our appreciation!
Brett, Does you shortcut icon change depending on the mute status – green when unmuted, red when muted?
Brett, Also, do you need to be an Admin on the machine for
Thanks for the questions. No, my icon doesn’t change colors; I don’t think there’s a documented way to implement that. (Though if someone can demonstrate that I’m wrong in that regard, I’d be _most_ interested!) The picture on top (above) was from Ken’s blog (Ken & Mike on the MATLAB Desktop). Ken chose to implement two buttons. One can easily be red, the other green. I opted for a toggle instead (lower picture). It’s always red.
And no, setting the appdata does not require administrative privileges. That’s just core MATLAB speak! (Read the doc entry for |setappdata| for more on that.)