Effacer les filtres
Effacer les filtres

How to stop on a variable getting a specific value?

4 vues (au cours des 30 derniers jours)
Evgeny Bespechansky
Evgeny Bespechansky le 30 Avr 2019
Commenté : dpb le 1 Mai 2019
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?

Réponse acceptée

dpb
dpb le 30 Avr 2019
Modifié(e) : dpb le 30 Avr 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 commentaires
Evgeny Bespechansky
Evgeny Bespechansky le 1 Mai 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 le 1 Mai 2019
Excepting you could build a function that hides the ugly to invoke...

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Debugging and Analysis dans Help Center et File Exchange

Produits


Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by