Display the error containing line in .m file
이전 댓글 표시
Is there a method to display the error containing line in .m file, when the execution stops?
댓글 수: 1
Oleg Komarov
2011년 8월 2일
Your question sounds like:
How to pinpoint the line that errors in a "highlight some lines + F9"?
답변 (3개)
Jan
2011년 8월 2일
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
Oleg Komarov
2011년 8월 2일
Didn't know about all error!
Jan
2011년 8월 2일
@Oleg: It was documented in Matlab 6.5. I think it is equivalent to the current "dbstop if caught error".
Oleg Komarov
2011년 8월 2일
@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
2011년 8월 2일
@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
2011년 8월 2일
@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
2011년 8월 2일
Oleg Komarov
2011년 8월 2일
Anyways: 'dbstop if all error' works nevertheles on 2011a
Horia
2011년 8월 3일
Fangjun Jiang
2011년 8월 2일
0 개 추천
It is usually indicated in the error message.
Also, help dbstack.
댓글 수: 5
Horia
2011년 8월 2일
Walter Roberson
2011년 8월 2일
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
2011년 8월 2일
The standard error message traceback shows not only any chain of library calls, but also the line in the user .m file
Jan
2011년 8월 3일
Under which circumstances does it (MATLAB?) show "error at" without a line number? Usually a line number is following.
Horia
2011년 8월 3일
Paulo Silva
2011년 8월 2일
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
Oleg Komarov
2011년 8월 2일
I get an empty stack if in a new .m file:
s = s(1)
l = lasterror
카테고리
도움말 센터 및 File Exchange에서 Debug Code에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!