How to stop on a variable getting a specific value?

조회 수: 2 (최근 30일)
Evgeny Bespechansky
Evgeny Bespechansky 2019년 4월 30일
댓글: dpb 2019년 5월 1일
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?

채택된 답변

dpb
dpb 2019년 4월 30일
편집: dpb 2019년 4월 30일
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
Evgeny Bespechansky
Evgeny Bespechansky 2019년 5월 1일
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 2019년 5월 1일
Excepting you could build a function that hides the ugly to invoke...

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Debugging and Analysis에 대해 자세히 알아보기

제품


릴리스

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by