Display the error containing line in .m file
Mostrar comentarios más antiguos
Is there a method to display the error containing line in .m file, when the execution stops?
1 comentario
Oleg Komarov
el 2 de Ag. de 2011
Your question sounds like:
How to pinpoint the line that errors in a "highlight some lines + F9"?
Respuestas (3)
Jan
el 2 de Ag. de 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 comentarios
Oleg Komarov
el 2 de Ag. de 2011
Didn't know about all error!
Jan
el 2 de Ag. de 2011
@Oleg: It was documented in Matlab 6.5. I think it is equivalent to the current "dbstop if caught error".
Oleg Komarov
el 2 de Ag. de 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
el 2 de Ag. de 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
el 2 de Ag. de 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
el 2 de Ag. de 2011
Oleg Komarov
el 2 de Ag. de 2011
Anyways: 'dbstop if all error' works nevertheles on 2011a
Horia
el 3 de Ag. de 2011
Fangjun Jiang
el 2 de Ag. de 2011
0 votos
It is usually indicated in the error message.
Also, help dbstack.
5 comentarios
Horia
el 2 de Ag. de 2011
Walter Roberson
el 2 de Ag. de 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
el 2 de Ag. de 2011
The standard error message traceback shows not only any chain of library calls, but also the line in the user .m file
Jan
el 3 de Ag. de 2011
Under which circumstances does it (MATLAB?) show "error at" without a line number? Usually a line number is following.
Horia
el 3 de Ag. de 2011
Paulo Silva
el 2 de Ag. de 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 comentario
Oleg Komarov
el 2 de Ag. de 2011
I get an empty stack if in a new .m file:
s = s(1)
l = lasterror
Categorías
Más información sobre Debugging and Analysis en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!