Поделиться через


Сведения об отладчике Transact-SQL

Область применения: SQL Server

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

Окна отладчика

В режиме отладчика откроется окно рядом с окном Редактор запросов. Отладчик отображает свои сведения в выбранных окнах. В каждом окне отладчика есть вкладки, определяющие, какой набор сведений отображается в данном окне. Стек вызовов, точки останова, параметры исключений и вкладки вывода содержатся в одном окне. Вкладки Watch1, Watch2, Watch3 и Watch4 содержатся в одном окне. Окна "Потоки" и "Локальные" отображаются отдельно.

Примечание.

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

По умолчанию не все эти вкладки или окна активны. Чтобы открыть определенное окно, в меню отладки выберите Windows и выберите окно, которое нужно просмотреть.

Выражения Transact-SQL

Выражения — это предложения Transact-SQL, значение которых определяет отдельное скалярное значение, например переменные или параметры. Окно отладчика может отображать значения данных, которые в настоящее время назначены выражениям на пяти вкладках или окнах: локальные значения, Watch1, Watch2, Watch3 и Watch4.

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

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

  • Имя переменной, например @IntegerCounter.

  • Арифметическая операция над переменной, например @IntegerCounter+1.

  • Строковая операция над двумя символьными переменными, например @FirstName + @LastName.

  • Инструкция SELECT, возвращающая единственное значение, например SELECT CharCol FROM MyTable WHERE PrimaryKey = 1.

В четырех окнах "Контрольные " отображаются сведения о выбранных переменных и выражениях. Набор выражений, перечисленных в окнах контрольных значений, не изменяется, пока вы не добавите или удалите выражения из списка.

Чтобы добавить выражение в окно "Просмотр", введите имя выражения в столбце "Имя" пустой строки в окне "Контроль". Вы также можете выбрать QuickWatch в меню отладки , ввести выражение, а затем нажмите кнопку "Добавить часы".

Задать значение данных для переменных в окнах Локальные значения, Просмотр значенийили Контрольное значение можно, щелкнув строку правой кнопкой мыши и выбрав команду Изменить значение. Столбцы Значение в окне Локальные значения , окне Просмотр значений , а также в диалоговом окне Контрольное значение допускают текстовые, XML и HTML визуализаторы данных. Визуализаторы представлены как подсказка по данным в виде лупы с правой стороны столбца Значения . Визуализаторы можно использовать для просмотра текстовых, XML или HTML-значений данных в программах, которые соответствуют типу данных, например просматривать XML-файлы в окне браузера.

Если в режиме отладки указатель мыши навести на идентификатор, отображается всплывающее окно Краткие сведения с именем выражения и его текущим значением. Дополнительные сведения см. в статье Краткие сведения (технология IntelliSense).

Точки останова

Окно точек останова можно использовать для просмотра точек останова и управления ими. Дополнительные сведения см. в разделе Пошаговая отладка кода Transact-SQL.

Стеки вызовов

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

  • текущее положение выполнения;

  • вызов от одного модуля к другому;

  • вызов из окна редактора к модулю Transact-SQL.

Порядок стека является обратным порядком вызова модулей. Текущее положение выполнения находится вверху стека, а начальный вызов — внизу. Желтая стрелка на левом краю кадра стека обозначает кадр, на котором отладчик приостанавливает выполнение.

В столбце Имя записываются следующие сведения.

  • Исходный модуль, содержащий строку кода, которая произвела вызов следующего уровня.

  • Строка кода, которая вызвала следующий модуль в стеке.

  • Имена, типы данных и значения всех параметров перечислены, если вызов пошел в хранимую процедуру или функцию, принимающую параметры.

Выражения в окнах Locals и Watch и QuickWatch вычисляются для текущего кадра стека. По умолчанию текущий кадр стека является верхним кадром в стеке, на котором отладчик приостановил выполнение. При указании другого кадра стека в качестве текущего выражения в окнах Локальные переменные, Контрольные значенияи Быстрая проверка вычисляются для нового кадра стека Чтобы изменить текущий кадр стека, нужно либо дважды щелкнуть кадр, либо щелкнуть кадр и выбрать Переключиться на фрагмент. После этого выражения в окнах Локальные переменные, Контрольные значенияи Быстрая проверка будут вычислены для нового кадра. Всякий раз, когда текущий кадр стека не является верхним кадром в стеке, зеленая стрелка в левом поле кадра стека определяет текущий кадр стека.

Если щелкнуть кадр стека правой кнопкой мыши и выбрать пункт К исходному коду, код для этого кадра появится в окне редактора запросов. Однако этот кадр не делает текущий кадр, а содержимое окон Locals, Watch и QuickWatch не изменяются.

Сведения о системе и результаты Transact-SQL

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

Когда редактор запросов находится в режиме отладки, вкладки Результаты и Сообщения остаются активными. На вкладке Результаты постоянно отображаются результирующие наборы от инструкций Transact-SQL, которые выполняются во время сеанса отладки. Вкладка "Сообщения" продолжает отображать системные сообщения, такие как количество затронутых строк и выходные данные инструкций PRINT и RAISERROR.