is there a way to tell if your function has been called from the "k>>" debug prompt instead of the normal ">>" prompt?
Something like an "isdebug()" function??
Thanks
Ronan

 采纳的回答

Daniel Shub
Daniel Shub 2011-7-13

0 个投票

I don't think there is a robust way to tell. For example, you can get the "k>>" prompt with a keyboard command and I have no idea how to tell if the keyboard command has been called.
If you just want to tell if you are at a standard break point you can probably check each item in dbstack against the breakpoints returned by dbstatus.

1 个评论

Thanks Daniel
If there really is no builtin way then comparing the outputs of dbstack an dbstatus is a good suggestion. Can anyone foresee and problems with this??
R

请先登录,再进行评论。

更多回答(2 个)

Jan
Jan 2011-7-13
You can use this to determine, if Matlab is currently in debug mode:
feature('IsDebugMode')
This replies 1 in debug mode, 0 otherwise. This is not documented and can change with the Matlab version.

3 个评论

I need to play around with the feature command more.
Thanks Jan.
Just what I was after.
Ronan
Unfortunately, this solution no longer seems to work (r2019b) unless the call to feature or system_dependent is invoked by "Evalulate Selection" (F9).
function test()
clc()
feature('IsDebugMode')
system_dependent('IsDebugMode')
end

请先登录,再进行评论。

I also needed an answer to this question! I was pleased just now to find here on Answers that feature('IsDebugMode') does the trick. Before turning to Answers I was looking in the MATLAB help, and came up with this alternative:
try
dbup % try going up the stack frame, works if in debug mode
dbdown % back to where we started
isDebugMode = true;
catch ME
assert(strcmp(ME.identifier, 'MATLAB:dbOnlyInDebugMode'))
isDebugMode = false;
end
Although the undocumented feature() is much neater, this is an alternative if you want to stay on official MATLAB.

1 个评论

This solution fails in r2019b (I haven't tested it in earlier versions).
Debug commands are only supported when stopped in debug mode so when they are executed from within a script/function as you step through it in debug mode, it will cause an error the same error as when it's invoked from outside of debug mode ('MATLAB:dbOnlyInDebugMode').

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Startup and Shutdown 的更多信息

产品

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by