exponenta event banner

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