dbup does not behave as expected

5 visualizaciones (últimos 30 días)
敬 杨
敬 杨 el 29 de Mayo de 2025
Comentada: 敬 杨 el 30 de Mayo de 2025
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 comentarios
Adam Danz
Adam Danz el 29 de Mayo de 2025
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?
敬 杨
敬 杨 el 30 de Mayo de 2025
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.

Iniciar sesión para comentar.

Respuesta aceptada

Matt J
Matt J el 29 de Mayo de 2025
Editada: Matt J el 29 de Mayo de 2025
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 comentarios
Adam Danz
Adam Danz el 29 de Mayo de 2025
This is documented in the dbup page, "dbup can only be called from the command line."
Matt J
Matt J el 29 de Mayo de 2025
Editada: Matt J el 29 de Mayo de 2025
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.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Debugging and Analysis en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2025a

Community Treasure Hunt

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

Start Hunting!

Translated by