Для текстового редактора Vim есть замечательный плагин Vdebug, позволяющий работать с xDebug. Хорошая подробная документация доступна прямо в репозитории. Кроме того, можно изучать документацию не выходя из Vim. Если вы установили Vim читая статью Установка плагина для Vim с помощью pathogen.vim, вы можете сгенерировать документацию командой :helptags ~/app-root/data/vim/bundle/vdebug/doc/. Команда :help Vdebug отображает документацию.
Запуск отладчика осуществляется клавишей <F5>, после чего, отладчик будет ждать входящие подключения. Разберем отладку на примере WordPress.
1. Откройте файл ~/app-root/data/current/wp-settings.php
2. Установите точку остановки, нажав клавишу <F10>, например, здесь:
if ( is_multisite() )
ms_cookie_constants();
// Define constants after multisite is loaded.
wp_cookie_constants();
3. Запустите отладчик клавишей <F5>. Вы увидите сообщение Waiting for a connection (Ctrl-C to cancel, this message will self-destruct in 20 seconds...)
4. Откройте ваш блог в браузере
Vdebug остановится на первой строке в файле index.php. Нажмите <F5> еще раз. Как мы видим, vdebug перешел к нашей точке остановки.
Запуск отладчика осуществляется клавишей <F5>, после чего, отладчик будет ждать входящие подключения. Разберем отладку на примере WordPress.
1. Откройте файл ~/app-root/data/current/wp-settings.php
2. Установите точку остановки, нажав клавишу <F10>, например, здесь:
if ( is_multisite() )
ms_cookie_constants();
// Define constants after multisite is loaded.
wp_cookie_constants();
3. Запустите отладчик клавишей <F5>. Вы увидите сообщение Waiting for a connection (Ctrl-C to cancel, this message will self-destruct in 20 seconds...)
4. Откройте ваш блог в браузере
Vdebug остановится на первой строке в файле index.php. Нажмите <F5> еще раз. Как мы видим, vdebug перешел к нашей точке остановки.
![]() |
Отладчик Vdebug в работе |
Окно DebuggerWatch показывает переменные на момент остановки. Они отображаются в виде дерева, чтобы иметь возможность показать объекты и массивы. Чтобы свернуть/развернуть ветвь , нажмите <enter> (<cr>).
Чтобы посмотреть глобальные переменные, установите курсор на слово Superglobals и нажмите <enter> (<cr>).
Окно DebuggerStack показывает стек (файлы, функции, методы) через которые прошла программа чтобы оказаться в текущей ([0]) позиции. Вы можете перемещаться по стеку с помощью клавиши <enter> (<cr>) - участок кода откроется в окне слева.
Окно DebuggerBreakpoints скрыто по умолчанию. Выполните команду :BreakpointWindow чтобы его отобразить.
Основные команды
- <F5>: Run (запуск/переход к следующей точке остановки или концу программы)
- <F2>: Step over (выполнение команды, не входя в функции и подключаемые файлы)
- <F3>: Step in (выполнение команды, входя в функции и подключаемые файлы)
- <F4>: Step out (выход назад из функции или подключаемого файла)
- <F6>: Stop/close (остановить отладку и программу, двойное нажатие также скрывает интерфейс отладчика)
- <F7>: Detach (отключить отладчик и продолжить выполнение программы)
- <F9>: Run to cursor (выполнить весь код до курсора)
- <F10>: Toggle breakpoint (установить/снять точку остановки)
- <F11>: Show context variables (показать контекстные переменные после выполнения выражения)
- <F12>: Evaluate variable under cursor (получить значение переменной под курсором)
Точки остановки
Есть несколько типов точек остановки:
- Line (остановка на строке в файле). Устанавливается клавишей <F10>, или командой :Breakpoint
- Conditional (остановка на строке в файле если условие истинно). Устанавливается командой :Breakpoint conditional <condition>, например, :Breakpoint conditional $a==5
- Exception (остановка при выбросе исключения). Устанавливается командой :Breakpoint exception <exception-name>, например :Breakpoint exception PDOException
- Call (остановка при вызове функции). Отладчик остановится на первой строке в функции. Устанавливается командой :Breakpoint call <function-name>, например, :Breakpoint call open_file
- Return (остановка при возврате значения из функции). Отладчик остановится на слове return. Устанавливается командой :Breakpoint return <function-name>, например, :Breakpoint return open_file
Выполнение выражения
Вы можете выполнить выражение в текущем контексте выполнения программы и отобразить его значение в окне DebuggerWatch:
- выполнив команду :VdebugEval $variable + 5, вы получите ответ. Здесь мы прибавляем 5 к уже определенной в коде переменной
- чтобы продолжить отображать значение выражения и обновлять его в ходе выполнения программы в окне DebuggerWatch, выполните команду :VdebugEval! $variable + 5. Здесь мы прибавляем 5 к уже определенной в коде переменной. Чтобы выйти из этого режима, выполните команду :VdebugEval!
- установив курсор на переменную, и нажав <F12>, вы получите ее значение
Клавиша <F11> позволяет отобразить контекстные переменные вместо результата выполнения выражения.
Комментариев нет:
Отправить комментарий