dbup

Сдвиньте текущую рабочую область в рабочую область вызывающего абонента в режиме отладки

Синтаксис

Описание

пример

dbup изменяет текущий контекст рабочей области и функции на контекст рабочей области и функции вызывающей функции или скрипта в режиме отладки. Затем можно изучить вызов MATLAB® функция или скрипт, чтобы определить, что привело к передаче аргументов вызываемой функции.

Каждый dbup команда изменяет контекст рабочей области и функции на более раннюю вызывающую функцию или скрипт в стеке до тех пор, пока не будет достигнут контекст базового рабочего пространства и функции. Вам не нужно возвращаться к линии, в которой MATLAB приостановлен, чтобы продолжить выполнение или перейти к следующей линии.

пример

dbup n изменяет текущий контекст рабочей области и функции на контекст рабочей области и функции вызывающей функции или скрипта, который n уровни выше на стеке. Управление dbup n эквивалентно выполнению dbup командная n времени.

Примеры

свернуть все

Используйте dbup команда для просмотра рабочей рабочей области вызывающей функции функции.

Создайте файл myfile.m который содержит эти операторы.

function n = myfile(x)
n = myfunc(x-1);

function z = myfunc(y)
z = 2/y;

Установите точку останова в myfunc и запустите myfile с входом 1. MATLAB останавливается в myfunc функции, на линии z = 2/y.

dbstop in myfile>myfunc
myfile(1);
5   z = 2/y;

Звонить whos чтобы просмотреть переменные в текущей рабочей области.

whos
  Name      Size            Bytes  Class     Attributes

  y         1x1                 8  double          

Рабочая область содержит переменную y, который находится в контексте рабочей области для myfunc.

Запустите dbup команда для переключения в рабочую область вызывающей функции, myfile. Затем позвоните whos.

dbup
whos
In workspace belonging to myfile (line 2)
  Name      Size            Bytes  Class     Attributes

  x         1x1                 8  double  

Рабочая область содержит переменную x, который находится в контексте рабочей области для myfile.

Используйте dbup команда, чтобы изменить текущую рабочую область на базовое рабочее пространство с одним шагом.

Создайте файл myfile.m который содержит эти операторы.

function n = myfile(x)
n = myfunc1(x-1);

function m = myfunc1(y)
m = myfunc2(2/y);

function p = myfunc2(z)
p = (z-1)/3;

Установите точку останова в myfunc2 и запустите myfile с входом 1. MATLAB останавливается в myfunc2 функции, на линии p = (z-1)/3.

dbstop in myfile>myfunc2
myfile(1);
8   p = (z-1)/3;

Звонить whos чтобы просмотреть переменные в текущей рабочей области.

whos
  Name      Size            Bytes  Class     Attributes

  z         1x1                 8  double    

Рабочая область содержит переменную z, который находится в контексте рабочей области для myfunc2.

Запустите dbup команду для переключения в базовое рабочее пространство и последующего вызова whos.

dbup 2
whos
In workspace belonging to myfile (line 2)
  Name      Size            Bytes  Class     Attributes

  x         1x1                 8  double              

Рабочая область содержит переменную x, который находится в контексте рабочей области для myfile.

Входные параметры

свернуть все

Количество уровней для перемещения по стеку вызовов, заданное как положительный целочисленный скаляр.

Совет

  • Если вы получаете сообщение об ошибке, такое как следующее, это означает, что родительская рабочая область находится в конструкции, так что значение x недоступен:

    ??? Reference to a called function result under construction x

Представлено до R2006a