dbup does not behave as expected

In MATLAB '25.1.0.2943329 (R2025a)', when in debug mode, calling dbup within a function behaves differently from calling dbup directly.
Save the following code as test_bug1:
function test_bug1(a,b)
c = a + b;
end
First, run
dbstop if error,
then call
test_bug1([1 2 3], [2 3]);
This will enter debug mode at the line c = a + b inside the test_bug1 function.
Executing dbup at this point behaves as expected and returns to the previous workspace.
However, if you define the following function:
function dbup_1()
dbup;
end
Executing dbup_1 at that moment results in an error, indicating that the current command is not a debugging command.
Similarly, if you create the following script and save it as dbup_2:
dbup;
Calling dbup_2 still results in the same error.
My question is: What causes the issue above?
If I want to include dbup, dbdown, and similar commands inside a function, how should I proceed?

2 件のコメント

Adam Danz
Adam Danz 2025 年 5 月 29 日
Accessing variables from a different workspace usually it not a good idea. What's the ultimate goal? Why can't it be realized by passing variables into the function?
敬 杨
敬 杨 2025 年 5 月 30 日
You can refer to another question I asked for more details.
Simply put, I would like to save the variables from every level of the function call stack when an error occurs in the program.

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

 採用された回答

Matt J
Matt J 2025 年 5 月 29 日
編集済み: Matt J 2025 年 5 月 29 日

1 投票

There are special limitations on dbup, dbdown, and friends. You cannot call them from functions, because when a function is executing, you are not in debug mode anymore.

3 件のコメント

Matt J
Matt J 2025 年 5 月 29 日
編集済み: Matt J 2025 年 5 月 29 日
Interestingly, though, I do find that you can invoke dbup from a Favorite Command (at least, you can in R2024b).
Adam Danz
Adam Danz 2025 年 5 月 29 日
This is documented in the dbup page, "dbup can only be called from the command line."
Matt J
Matt J 2025 年 5 月 29 日
編集済み: Matt J 2025 年 5 月 29 日
Specifically, though, from the debugger command line:
>> dbup
Error using dbup
Debug commands only allowed when stopped in debug mode.
>> keyboard
K>> dbup
In base workspace.

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeDebugging and Analysis についてさらに検索

製品

リリース

R2025a

タグ

質問済み:

2025 年 5 月 29 日

コメント済み:

2025 年 5 月 30 日

Community Treasure Hunt

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

Start Hunting!

Translated by