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 件のコメント

Ronan
Ronan 2011 年 7 月 13 日
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 日

4 投票

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 件のコメント

Daniel Shub
Daniel Shub 2011 年 7 月 14 日
I need to play around with the feature command more.
Ronan
Ronan 2011 年 7 月 14 日
Thanks Jan.
Just what I was after.
Ronan
Adam Danz
Adam Danz 2020 年 8 月 30 日
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

サインインしてコメントする。

Julian
Julian 2015 年 10 月 9 日

4 投票

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 件のコメント

Adam Danz
Adam Danz 2020 年 8 月 30 日
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 ExchangeStartup and Shutdown についてさらに検索

製品

タグ

質問済み:

2011 年 7 月 13 日

コメント済み:

2020 年 8 月 30 日

Community Treasure Hunt

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

Start Hunting!

Translated by