How to stop on a variable getting a specific value?

2 views (last 30 days)
I have a variable that can change its value in multiple locations within a long function.
For debugging purposes I want to stop-in-debug once this variable gets a specific value.
I could go throughout the code and set a conditional breakpoint in each line it can happen, but I wonder, if there is a way to set a "global" conditional breakpoint?

Accepted Answer

dpb
dpb on 30 Apr 2019
Edited: dpb on 30 Apr 2019
dbstop in file at if expression
is best you can do I think...you don't have to manually insert the breakpoint at every line but would have to get the line numbers and put into a little script to run...a little grep utility could possibly be invoked to build/retrieve the lines in the m-file with an assignment to the subject variable name???
ADDENDUM:
I've long thought the debugger should have a watch facility besides...
  2 Comments
Evgeny Bespechansky
Evgeny Bespechansky on 1 May 2019
You seem to be right.
Without the "at" statement the condition fails - it is defined for the variable that is undefined at the beggining of the function. So I have to execute something like
for i=61:200
cLine = sprintf('dbstop in myFunc.m at %d if myVar>X', i);
eval(cLine);
end
It looks ugly and not much easier than to search the code for every line where myVar can change its value and set a breakpoint manually...
dpb
dpb on 1 May 2019
Excepting you could build a function that hides the ugly to invoke...

Sign in to comment.

More Answers (0)

Categories

Find more on Debugging and Analysis in Help Center and File Exchange

Products


Release

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!