Display the error containing line in .m file
Mostra commenti meno recenti
Is there a method to display the error containing line in .m file, when the execution stops?
1 Commento
Oleg Komarov
il 2 Ago 2011
Your question sounds like:
How to pinpoint the line that errors in a "highlight some lines + F9"?
Risposte (3)
Jan
il 2 Ago 2011
Perhaps you are looking for:
dbstop if error
or if you want to catch error inside TRY-CATCH also:
dbstop if all error
[EDITED]: In modern Matlab versions this is documented:
dbstop if caught error
Then the failing line is highlighted in the editor automatically.
8 Commenti
Oleg Komarov
il 2 Ago 2011
Didn't know about all error!
Jan
il 2 Ago 2011
@Oleg: It was documented in Matlab 6.5. I think it is equivalent to the current "dbstop if caught error".
Oleg Komarov
il 2 Ago 2011
@Jan: actually it's not.
Seems like "dbstop if all error" is not documented anymore and it's funny how dbclear refers to "if error all".
Jan
il 2 Ago 2011
@Oleg: I get in Matlab 2009a:
dbclear('all'); dbstop('if', 'all', 'error'); dbstatus
>> Stop if error, Stop if caught error.
Therefore I assume "dbstop if all error" is just a synonym.
Oleg Komarov
il 2 Ago 2011
@Jan: 2011a http://www.mathworks.com/help/techdoc/ref/dbstop.html
'caught error' only for try-catch and it doesn't display the line if a simple highlight execute is performed on a script.
Horia
il 2 Ago 2011
Oleg Komarov
il 2 Ago 2011
Anyways: 'dbstop if all error' works nevertheles on 2011a
Horia
il 3 Ago 2011
Fangjun Jiang
il 2 Ago 2011
0 voti
It is usually indicated in the error message.
Also, help dbstack.
5 Commenti
Horia
il 2 Ago 2011
Walter Roberson
il 2 Ago 2011
How do you define which line of code is "responsible" for a logic error that doesn't trigger an explicit fault for another several days?
Walter Roberson
il 2 Ago 2011
The standard error message traceback shows not only any chain of library calls, but also the line in the user .m file
Jan
il 3 Ago 2011
Under which circumstances does it (MATLAB?) show "error at" without a line number? Usually a line number is following.
Horia
il 3 Ago 2011
Paulo Silva
il 2 Ago 2011
After you get the error, execute this
l=lasterror;
fprintf('The last error was on line %d of the file called %s \n',...
l.stack.line,l.stack.name)
1 Commento
Oleg Komarov
il 2 Ago 2011
I get an empty stack if in a new .m file:
s = s(1)
l = lasterror
Categorie
Scopri di più su Debug Code in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!