Отладчик Transact-SQL, окно стека вызовов

Применимо к:SQL Server

В окне Стек вызовов отображаются модули в стеке вызова, а также типы данных и значения всех параметров, передаваемых в модули. Модули Transact-SQL содержат хранимые процедуры, функции и триггеры. Чтобы отобразить стек вызова, необходимо находиться в режиме отладки.

Эта функция работает с SSMS версии 17.9.1 и предшествующими версиями.

Список задач

Доступ к окну «Стек вызовов»

  • В меню Отладка укажите Окнаи выберите пункт Стек вызовов.

Изменение текущего кадра стека в стеке вызова

Можно использовать любую из следующих процедур, чтобы сделать один из кадров стека текущим.

  • Щелкните правой кнопкой мыши кадр стека и выберите команду Перейти к кадру.

  • Дважды щелкните кадр стека.

Просмотр источника кадра, отличного от текущего кадра

  • Щелкните правой кнопкой мыши кадр стека и выберите команду К исходному коду.

Кадры стека

Каждая строка в окне Стек вызовов называется кадром стека и представляет либо вызов модуля из файла скрипта Transact-SQL либо из другого модуля. Нижний кадр стека на экране показывает ту строку в окне редактора запросов компонента Компонент Database Engine , в которой был сделан первый вызов в стеке. Верхняя строка указывает строку, на которой отладчик приостановил выполнение, и обозначается желтой стрелкой в левом поле окна. Каждая промежуточная строка указывает модуль и номер строки исходного кода, в котором произошел вызов следующего, вышестоящего кадра стека.

Все выражения в окнах Локальные значения, Контрольные значенияи Быстрая проверка вычисляются на основе текущего кадра стека. В окне «Редактор запросов» отображается код текущего кадра. По умолчанию текущим кадром стека является тот, в котором отладчик Transact-SQL приостановил выполнение. После перехода от текущего кадра стека к другому кадру выражения в окнах Локальные переменные, Контрольные значенияи Быстрая проверка повторно вычисляются в контексте нового кадра и в окне редактора запросов отображается исходный код нового кадра.

Столбцы

имя;
Отображается информация о модуле в стеке вызова.

В нижней строке в стеке вызова в поле Имя указано окно источника редактора запросов и номер строки первого вызова в стеке. В других строках поле Имя имеет формат Модуль(Экземпляр.База_данных)(Список_параметров) Номер_строки.

Модуль
Представляет собой имя хранимой процедуры, функции или хранимой процедуры, вызвавшей следующий кадр.

Экземпляр.База_данных
Указывает экземпляр компонента Компонент Database Engine и базу данных, в которой содержится модуль.

Список_параметров
Указывает тип данных, имя и значение каждого параметра, переданного во время вызова в модуль.

LineNumber
Для всех строк, кроме верхней строки, значение Номер_строки указывает, в какой строке модуля вызван этот кадр. Для верхней строки значение Номер_строки указывает строку, которая в настоящее время находится в фокусе в отладчике.

Язык
Для языка Transact-SQL отображается значение Transact-SQL.

См. также: