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


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

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

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

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

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

Замечание

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

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

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

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

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

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

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

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

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

  • Оператор SELECT, возвращающий одно значение, например: SELECT CharCol FROM MyTable WHERE PrimaryKey = 1.

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

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

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

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

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

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

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

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

  • Текущее местоположение исполнения.
  • Вызов из одного модуля в другой.
  • Вызов из окна редактора в модуль Transact-SQL.

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

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

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

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

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

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

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

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

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

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