Breakpoints
Show older comments
Is there any method to set breakpoints to all the lines of a .m file, except manually one by one?
Answers (4)
Jan
on 2 Aug 2011
As Sean and Jiang I do not think that this is useful. But if you are sure that you need it:
i = 1;
while 1
try
dbstop(FuncName, sprintf('%d', i));
i = i + 1;
catch
break;
end
end
2 Comments
math07 rizqi
on 22 Aug 2011
thanks, this answer really helped me.
Jan
on 22 Aug 2011
Is your problem solved?
Sean de Wolski
on 2 Aug 2011
Why not just set one on the first line and step through it?
doc dbstop
doc dbstep
2 Comments
Horia
on 2 Aug 2011
Sean de Wolski
on 2 Aug 2011
How does it work any differently than having a break point on that line?
Fangjun Jiang
on 2 Aug 2011
0 votes
Why do you need that? You can debug by running code line by line (pressing F10).
2 Comments
Horia
on 2 Aug 2011
Image Analyst
on 2 Aug 2011
That doesn't make any sense. Typing F5 or F10 WILL work, even if you're stepping on a line that generates an error. How would an error get generated anyway, if not due to executing a statement in the loop that you are in? Doesn't make sense, unless you had some kind of parallel processing going and THAT process generated the error. Even that doesn't negate the fact that F5 and F10 will still work.
Walter Roberson
on 2 Aug 2011
0 votes
Yes, you can construct a script that would do this by issuing "dbstop" calls on your behalf. But like the others I do not see much point in it.
7 Comments
Walter Roberson
on 2 Aug 2011
You say that "Moreover, it doesn't work inside loops for errors due to something else than the loop itself." Could you give an example of that, and an example of the behavior you observe in such a situation?
I do not see at the moment how it might be more "tedious" than continually having to press F5 or F10 to continue if you have a breakpoint at every line.
Horia
on 2 Aug 2011
Image Analyst
on 2 Aug 2011
Horia's comment above does not make sense to me.
Walter Roberson
on 2 Aug 2011
I do not understand as yet what behavior you would like to see. Suppose breakpoints were turned on for every line: how would you work with the resulting function?
What is an example of a case where dbstep (or F10) does not work to your liking?
We are trying to understand the difference between what you want and what is already present. Already four experienced MATLAB programmers have not understood what you are trying to describe. That suggests that a longer explanation from you is more likely to lead to understanding than your telling us "If you don't see the point, good luck with F5, F10".
I have not encountered all possible code situations; it could be that what you are seeing something that (for example) only happens with "old style" OO programming in MATLAB in connection with (say) digitalio() callbacks. Impossible to say with the current information. _I_ haven't encountered problems with F5 / F10, but if you can provide reproducible code then I can explore the situation.
Horia
on 2 Aug 2011
Jan
on 2 Aug 2011
@Horia: Did my code what you want? If sets a break point in each line of the M-file, whose name is store in the variable FuncName. Does this differ from the requested behaviour, and if so, how?
Walter Roberson
on 20 Feb 2018
Edited: Walter Roberson
on 20 Feb 2018
If you were plotting a variable named values then
values(values<0) = nan;
MATLAB knows to skip plotting points with value nan.
Categories
Find more on Entering Commands in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!