Spec-Zone .ru
спецификации, руководства, описания, API
|
Отладчик хранимой процедуры, новый в Соединителе/Сети 6.6, предоставляет средства для того, чтобы они установили контрольные точки, ступая в отдельные операторы (Шаг В, Выйдите, Переступите), оценивая и изменяя значения локальной переменной, оценивая контрольные точки, и другие типичные задачи отладки.
Чтобы включить отладчику хранимой процедуры, установите Соединитель/Сеть 6.6 или выше и выберите опцию Complete.
Отладчик воссоздает в начале каждого сеанса отладки a serversidedebugger
база
данных в Вашем сервере. Эта база данных помогает отследить инструментованный код и логику наблюдательности
реализации в отлаженной подпрограмме. У Вашего текущего соединения должны быть полномочия создать ту базу
данных, и ее связанные сохраненные подпрограммы, функции, и таблицы.
Отладчик производит изменения негласно, чтобы временно добавить код инструментария к сохраненным подпрограммам,
которые Вы отлаживаете. Вы должны иметь ALTER ROUTINE
полномочие для каждой
хранимой процедуры, функции, или триггера, который Вы отлаживаете. (Включая процедуры и функции, которые
вызываются, и триггеры, которые запускаются процедурой, которую Вы отлаживаете.)
Чтобы запустить отладчик, следуйте за этими шагами:
Выберите соединение в Проводнике Сервера Visual Studio.
Расширьтесь Stored Procedures
папка. Только хранимые
процедуры могут быть отлажены непосредственно. Чтобы отладить определяемую пользователем функцию,
создайте хранимую процедуру, которая вызывает функцию.
Щелкните по узлу хранимой процедуры, тогда щелчок правой кнопкой и в контекстном меню выбирает Подпрограмму Отладки.
В этой точке Visual Studio переключается на режим отладки, открывая исходный код подпрограммы, отлаживаемой в пошаговом режиме, расположенном на первый оператор.
Если у начальной подпрограммы, которую Вы отлаживаете, будут один или более параметров, то раскрывающееся обнаружится с сеткой (строка на каждый параметр и три столбца: один для параметра, один для значения аргумента (это доступно для редактирования) и один для того, чтобы аннулировать то значение аргумента (флажок)). После установки всех значений аргументов можно нажать OK, чтобы запустить сеанс отладки, или Отмену к отмене сеанс отладки.
Чтобы иметь видимость во внутренние работы сохраненной подпрограммы, отладчик готовит специальную версию процедуры, функции, или триггера, отлаживаемого, инструментованного с дополнительным кодом, чтобы отследить текущую строку, ступившую в и значения всех локальных переменных. Любые другие хранимые процедуры, функции, или триггеры, вызванные от отлаживаемой подпрограммы, инструментуются тот же самый путь. Отладочные версии подпрограмм готовятся к Вам автоматически, и когда сеанс отладки заканчивается (или нажимающий F5 или Shift+F5), оригинальные версии подпрограмм автоматически восстанавливаются.
Копия оригинальной версии каждой инструментованной подпрограммы (версия без инструментария) сохранена в AppData\Roaming\MySqlDebuggerCache
папка для текущего пользователя Windows (путь
возвратился, вызывая System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
в.NET, плюс добавление MySqlDebuggerCache
. Есть один файл для каждой
инструментованной подпрограммы, названной
. Например, в Windows 7, для пользователя
называется routine_name
.mysqlfergs
, путь C:\Users\fergs\AppData\Roaming\MySqlDebuggerCache
.
Два потока используются, один для отладчика и один для отлаживаемой подпрограммы. Потоки, выполненные в строгом чередовании, переключающемся между отладчиком и подпрограммой как каждый оператор, выполняются в сохраненной подпрограмме.
У отладчика есть тот же самый стиль как стандартные отладчики Visual Studio для C#, VB.NET или C++. В частности следующее истина:
Локальные переменные и Часы
Чтобы показать вкладку Locals, выберите пункт меню Debug-> Windows-> Локальные переменные.
Вкладка Locals перечисляет все переменные, доступные в текущем
контексте: переменные, определенные с помощью DECLARE
в любой точке в
подпрограмме, параметрах параметра, и переменных сеанса, на которые ссылаются.
Если последняя работа шага изменит значение локальной переменной, то ее значение будет выделено в красном (пока другой оператор не будет выполнен или ступил.
Можно изменить значение любой локальной переменной.
Чтобы показать вкладку Watch, выберите пункт меню Debug-> Windows-> Часы.
Чтобы определить часы, введите любое допустимое выражение MySQL, дополнительно включая вызовы функции. Если оценка часов будет иметь смысл в текущем контексте (текущий стековый фрейм), то это покажет свое значение, иначе это покажет сообщение об ошибке в той же самой строке, часы были определены.
Отлаживая триггер, в дополнение к любым объявленным локальным переменным или
переменные сеанса, на которые ссылаются, новый и старый объект (когда применимый) будет перечислен.
Например в триггере для INSERT
, для таблицы, определенной как:
create table t1( id int, myname varchar( 50 ));
Стек вызовов
Чтобы показать вкладку Call Stack, выберите пункт меню Debug-> Windows-> Стек вызовов.
Трассировка стека (на вкладке Call Stack) перечислит все трассировки стека, один для каждого стандартного вызова. Тот с желтой меткой является текущей ступающей точкой. Щелчок в другом активирует в редакторе вкладку для того стандартного источника, выделяющегося в зеленом, последний оператор ступил.
Продвижение
Продвижение новой подпрограммы запускается в первой исполнимой инструкции (исключая, объявляет, обработчики, объявления курсора, и так далее).
Чтобы ступить в код обработчика особых ситуаций, условие должно быть инициировано в остальной части подпрограммы MySQL.
Следующий оператор, который будет выполнен, выделяется в желтом.
Чтобы продолжать ступать, можно выбрать между Шагом В (нажимая F11), Выйти (нажимая F10) или Переступить (нажимая Shift+F11).
Можно ступить из любой из функций, триггеров или хранимых процедур. Если Вы ступите от основной подпрограммы, то она выполнит ту подпрограмму к завершению и закончит сеанс отладки.
Можно переступить через вызовы хранимой процедуры, сохраненные функции, и триггеры. (Чтобы переступить через триггер, переступите через оператор, который заставил бы триггер стрелять.)
Ступая в единственный оператор, отладчик ступит в каждую отдельную функцию, вызванную тем оператором и каждый триггер, запущенный тем оператором. Порядок, в котором они отлаживаются, является тем же самым порядком, в котором сервер MySQL выполняет их.
Можно ступить в триггеры, инициированные от INSERT
, DELETE
, UPDATE
, и REPLACE
операторы.
Кроме того, число раз, Вы вводите в сохраненную функцию или триггер, зависит от
того, сколько строк оценивается функцией или влияется триггером. Например, если Вы нажимаете F11 (Шаг В) в UPDATE
оператор, который изменяет три строки (вызывающий функцию для
столбца в SET
пункт, таким образом вызывая функцию для каждой из этих трех
строк), Вы ступите в в ту функцию три раза по очереди, однажды для каждой из строк. Можно ускорить этот
сеанс отладки, отключая любые контрольные точки, определенные в данной сохраненной функции и нажимая
Shift+F11, чтобы выйти. В этом примере порядок, в котором
отлаживаются различные экземпляры сохраненной функции, специфичен для сервера: тот же самый порядок,
используемый текущим экземпляром сервера MySQL, чтобы оценить эти три вызова функции.
Контрольные точки
Чтобы показать вкладку Breakpoints, выберите пункт меню Debug-> Windows-> Контрольные точки.
Вкладка Breakpoints покажет все определенные контрольные точки. Отсюда, можно включить и отключить контрольные точки один за другим или внезапно (использующий панель инструментов сверху вкладки Breakpoints).
Можно определить новые контрольные точки только в середине сеанса отладки. Щелкните в левой серой границе любого редактора MySQL, или щелкните где угодно в редакторе MySQL и нажмите F9. В знакомой Visual Studio путь Вы нажимаете F9 однажды создать контрольную точку в той строке, и нажать это снова, чтобы удалить ту контрольную точку.
Как только контрольная точка определяется, это будет казаться включенным (как заполненный красный круг, оставленный текущей строке, если та строка будет допустимым оператором, чтобы поместить контрольную точку) или отключенный (как незаполненный красный круг, оставленный текущей строке, если та строка не допустима, чтобы поместить контрольную точку).
Определить условные контрольные точки, после создания контрольной точки, щелчка правой кнопкой в красной точке и выбрать Условие.... Там можно поместить любое допустимое выражение MySQL и утвердить, ли условие, Истина или изменилась. Прежний инициирует контрольную точку каждый раз, когда условие является истиной, последний каждый раз, когда значение условия изменилось. (Если Вы определяете условную контрольную точку, недостаточно ступить в строку с контрольной точкой, определенной, чтобы инициировать такую контрольную точку.)
Определить контрольные точки количества передачи, после создания контрольной точки, щелчка правой кнопкой в красной точке и выбрать Хит граф.... В раскрывающемся диалоговом окне определите особое условие установить. Например, повредитесь, когда количество хита будет равно, и значение 3 инициирует контрольную точку в третий раз, когда это поражается.
Чтобы прервать сеанс отладки (и выполнение текущего стека вызовов подпрограмм), нажмите Shift+F5.
Чтобы выполнить подпрограмму к завершению (или до следующего хита контрольной точки), нажмите F5.
Для всей функциональности можно использовать (в дополнение к задокументированным ярлыкам), видеть опции в меню Debug Visual Studio.
Отлаживаемый код не должен использовать get_lock
или
release_lock
Функции MySQL, так как они используются внутренне
инфраструктурой отладчика, чтобы синхронизировать отладчик и отлаженную подпрограмму.
Отлаживаемый код должен избегать использования любого кода транзакции (START TRANSACTION
, COMMIT
, ROLLBACK
) из-за возможности вытирания содержания таблиц отладчика. (Это
ограничение может быть удалено в будущем).
Невозможно отладить подпрограммы в serversidedebugger
база данных.
Сервер MySQL, выполняющий отлаживаемую подпрограмму, может быть любой версией между 5.0 и 5.6, работая на Windows, Linux, или любой другой поддерживаемой платформе.
Мы всегда рекомендуем выполнить сеансы отладки на тесте и серверах разработки, а не против производственного сервера MySQL, потому что отладка может вызвать временные проблемы производительности или даже мертвые блокировки. Инструментованные версии подпрограмм, отлаживаемых блокировки использования, та остальная часть производственного кода, возможно, не знают.
Следующий список суммирует сочетания клавиш для того, чтобы отладить:
Контрольные точки Переключателей F9
F11: Шаг в однажды
F10: Переступите однажды
Shift+F11: Выйдите однажды
F5: Выполненный
Shift+F5: Прервите текущий сеанс отладки