MATLAB: Breakpoint does not work

breakpointMATLAB

Greetings,
I meet a very weird problem about breakpoint and none of my friends cannot solve it.
I put two breakpoints in 43 and 44 lines of Model class as Figure 1 shows.
When I runned the program, it stopped as Figure 2. From Figure 2, we can see the program never stopped at 43 and 44 lines, but directly threw the error and even skipped the 43 line disp(t).
However, if I put breakpoints at 42 lines and rerunned it, it can stop normally as Figure 3. But it still skipped 43 line and threw the error as Figure 2; and cannot stop at 43 and 44 lines, when exitflag was not 1.
In addition, I used "clear" in the main script, not "clear all". My Matlab version is R2018a.

Best Answer

The fact that the stack for the error includes the function parfinitedifferences suggests to me that the condition to enter that if statement is only satisfied on one of the workers used to evaluate the finite difference in parallel (you're passing the UseParallel option to fmincon, right?) In that case the breakpoint that was set on the client is not present on the workers.
You probably wouldn't want to enter debug mode on the workers anyway as they fall into the same general category as input and keyboard as called out on this documentation page. The worker would wait at the breakpoint for input that you couldn't give it.