dbup

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

Синтаксис

Описание

пример

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

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

пример

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

Примеры

свернуть все

Используйте 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