Настройка ide для отладки
Д авным-давно, когда компьютеры были большими, а именно — лет двадцать назад, отладка заключалась в копании в огромных кипах бумаги с исходными текстами и распечатках результатов работы и потреблении невероятного количества кофеина, а зачастую и анальгина. Современный программист, особенно если он программирует на Delphi, больше не чернорабочий от программирования с крепкими от переворачивания центнеров бумаги мускулами, а «белый воротничок», окруженный разнообразными »электронными мухобойками», предоставляемыми Delphi.
И нтегрированный отладчик Delphi переполнен полезными, не очень полезными и совсем бесполезными возможностями, и кажется, что изучить их просто невозможно. Однако использование отладчика Delphi просто, как апельсин: ведь когда вы компилируете свою программу и запускаете ее из среды Delphi, вы уже пользуетесь встроенным отладчиком, хотя, вероятно, и не подозреваете об этом. Как всегда, 90% проблем решается 10% возможностей программного обеспечения, а потому все разнообразие работы с отладчиком вы можете изучить позднее, при решении оставшихся 10% ваших проблем.
Настройка IDE для отладки
Д ля работы со встроенным отладчиком Delphi 4 его интегрированная среда разработки (IDE) предлагает целую серию установок, большинство из которых вам лучше не трогать, а оставить, как есть (по умолчанию). Однако если вы все-таки решили изменить установки, выберите команду Tools/Options и в появившемся диалоговом окне Environment Options щелкните на вкладке Preferences.
Н иже перечислены опции вкладки Preferences и их функции.
Integrated Debugging. Позволяет включать и отключать встроенный отладчик. Если вы отключите отладчик, отладочные команды в меню Run станут недоступными.
Совет: Если у вас возникли проблемы при запуске приложения из интегрированной среды, возможно, это вызвано конфликтом встроенного отладчика с другими приложениями, запущенными в системе. Попробуйте отключить встроенный отладчик и, если это поможет, будьте уверены — проблема кроется в одном из уже запущенных в системе приложений. Лучшим решением будет перезагрузка и последующий запуск только абсолютно необходимых приложений.
Step Program Block. Эта опция определяет, должен ли отладчик останавливаться перед началом выполнения основного блока begin. . . end при трассировке программы. Обычно данная опция отключена, и включать ее имеет смысл при добавлении кода в основной блок программы либо при отладке консольного приложения.
Hide Designers on Run. Когда эта опция включена, окно Object Inspector и формы, использующиеся при разработке приложения, перед запуском программы на выполнение закрываются. Отключение опции позволяет запускать программу быстрее, но эффект перекрывается используемыми незакрытыми ресурсами приложения. Впрочем, будет ли выбрана эта опция, зависит от пользователя.
Break on Exception. При включенной опции IDE всегда перехватывает исключительные ситуации и выводит окно сообщения, даже если в программе исключительная ситуация обрабатывается блоком try. . .except. Включение этой опции упростит отладку, так как выводимые сообщения при этом будут более информативными, чем сообщения обработчика, установленные по умолчанию. Помимо этого, IDE размещает окно редактора поверх остальных и выделяет строку, вызвавшую исключительную ситуацию.
Совет: Конечно, опция Break on Exception полезна, но может привести в растерянность новичка в Delphi, особенно когда сообщается об исключительной ситуации, которую должен обработать блок try. . .except. Вы можете либо отключить эту опцию, либо запустить приложение не из среды Delphi, чтобы увидеть его работу глазами конечного пользователя.
M inimize on Run Опция сворачивает окно IDE при запуске приложения Подобно опции Hide Designers on Run, ее установка зависит исключительно от личных предпочтений программиста. На странице Display диалогового окна Environment Options есть еще одна установка- опция Visible Gutter. Она включает или отключает отображение серой вертикальной полосы, расположенной слева от окна редактирования, на которой мнемоническими значками отображается отладочная информация
Включение в код отладочной информации
П еред началом отладки следует убедиться, что в приложение включена отладочная информация Delphi.
Д ля компиляции проекта с отладочной информацией следует выполнить команду Project/Options и в диалоговом окне Project Options выбрать вкладку Compiler
В ключение отладочной информации регулируется следующими установками
Debug Information. Опция контролирует включение отладочной информации. При отключении этой опции вы не сможете трассировать код или ставить точки прерывания в любом модуле. Опция эквивалентна директивам компилятора $D и $DEBUGINFO
Local Symbols. Опция контролирует включение информации о локальных переменных, декларированных, например, внутри функций, процедур и раздела implementation. Вряд ли у вас возникнет необходимость в отключении этой опции, тем более что она игнорируется при выключенной предыдущей опции. Эквивалентные директивы компилятора- $L и $LOCALSYMBOLS.
Symbol Info. Эту опцию нельзя целиком отнести к разряду отладочных, так как ее действие направлено на броузер объектов, а не на встроенный отладчик. Если опция включена, броузер объектов сможет выводить информацию для объектов, определенных в модулях Опция игнорируется при выключенных предыдущих двух опциях Эквивалентные директивы компилятора — $Y и $REFERENCEINFO
О бычно вы будете включать опции Debug Information и Local Symbols для пошаговой трассировки приложения. Однако, как упоминалось ранее, вы можете отключить отладочную информацию для некоторых модулей (просто используйте соответствующую директиву в начале модуля).
И спользование директивы $D- автоматически отключает опции Local Symbols и Symbol Info, так что вам не надо отключать их отдельно.
Совет: Если вы распространяете модули Delphi в виде DCU-файлов (например, VCL) и не распространяете их исходных текстов позаботьтесь о том, чтобы в скомпилированных модулях не содержалась отладочная информация.
Установка и настройка Xdebug
Есть очень хороший инструмент для отладки php кода — Xdebug. Сегодня я расскажу как его развернуть на своей машине, а также как настроить NetBeans IDE на работу с ним.
Немного о Xdebug
Основной целью расширения является максимально возможное упрощение отладки PHP-скриптов и добавление в разработку на PHP таких удобств, как точки останова, пошаговое выполнение и наблюдение за выражениями, которое мы привыкли видеть только в компилируемых языках программирования.
Помимо этого, расширение позволяет выполнять профилировку приложения и находить те части, которые замедляют его работу. Поддерживается также выполнение произвольного кода на точке останова. Xdebug стилизирует вывод ошибок, благодаря чему, читать ошибки становится гораздо удобнее. Кроме того, есть возможность самому указать, что будет выводиться при ошибке. На этом список возможностей не заканчивается, уж поверьте, у Xdebug также есть ряд других полезных при отладке функций.
В целом, расширение нужно, в первую очередь, для экономии времени разработчиков, так как позволяет быстрее локализовать ошибку в коде.
Установка Xdebug
Уже довольно давно Xdebug, как расширение для php, присутствует в репозиториях. Поэтому его установка очень проста, для этого введите в консоли следующую команду.
С установкой покончили. Перейдем к настройке.
Настройка Xdebug
Настройка расширения выполняется при помощи редактирования конфигурационных ini файлов. Тут есть два пути:
1. В php.ini создаем секцию [xdebug] и в ней задаем параметры.
2. Все параметры задаем в xdebug.ini, который хранится тут /etc/php5/conf.d/xdebug.ini
Тут решать Вам и только Вам.
Куда писать — определились. Определимся что писать?
Давайте я приведу список настроек, и поясню, что они означают:
После, необходимо чтобы наши изменения подтянулись.
Для этого нужно перезагрузить apache или php-fpm (в зависимости от того, что Вы используете).
Чтобы убедиться, что все хорошо, выведите
phpinfo();
Если такой текст имеется — значит все отлично:
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans
Теперь проверим улучшенный var_dump:
Вы должны увидеть красивый стилизированный вывод содержимого массива.
Теперь создадим ошибку (забудем ; в конце строки)
Вы должны увидеть подробное сообщение об ошибке, представляющее собой таблицу.
Настройка PhpStorm
Настройка NetBeans IDE
Устанавливаем NetBeans, если он еще не установлен. Заходим в Сервис → Параметры. Переходим в меню PHP, далее вкладка Отладка (Debugging).
И указываем следующие значения.
Порт отладчика: 9000
Идентификатор сеанса: netbeans-xdebug
Хочу отметить, что порт сеанса, как и идентификатор сеанса могу быть другими. Например, можно указать идентификатор ide-xdebug , но тогда и в конфигах Xdebug придется указать такое же значение.
Остальные параметры настраиваем под себя.
Ну, а о том, как выполнять отладку — в другой раз.
macik / cotonti-netbeans.md
Настройка среды разработки под Cotonti
В данной инструкции кратко расскажу о настройке программного окружения для простой и удобной разработки под CMF Cotonti (для ОС Windows).
Конкретно этот материал будет на примере программ NetBeans + OpenServer (WAMP).
Основной упор сделан на краткость и начинающий уровень пользователя. Задача настроить сервер, установить сайт, и отлаживать его в IDE с помощью удобного отладчика.
Установка сервера AMP (apache/mysql/php)
Общая настройка OpenServer
Идем на http://open-server.ru/download.html, качаем свежую версию Open Server Mini (110 Мб). Можно поставить и полную версию (
390 Мб), в нее включен дополнительный софт, который может быть полезен для вебмастера. Но я люблю сам подбирать дополнительные программы, поэтому ставлю сборку Mini . Программу так же можно найти на торрент трекере. Возможно это будет удобнее, т.к. с официального сайта скорость загрузки очень низкая. Устанавливаем в удобный для вас каталог. (Я опять же установлю его в каталог C:\porta\ , где у меня лежит софт для разработки ).
Запускаем файл Open Server.exe . При первом запуске программа спросит на каком языке отображать интерфейс (далее приведены инструкции и комментарии для русского интерфейса). Далее видим в трее (панель задач) красный флаг, который обозначает, что сервер на данный момент не запущен. Жмем на нем правую кнопку мыши (далее сокращенно ПКМ и ЛКМ ) и выбираем запустить. С настройками по умолчанию он должен без проблем запуститься (зеленый флаг на панели задач). Если что-то пошло не так и сервер не запустился — см. файл справки OpenServer, раздел «Вопросы и ответы». Теперь проверим, что сервер действительно работает. открываем любимый браузер и вводим в адресную строку адрес localhost (привыкайте это основной адрес вашего локального сервера). Если все нормально наблюдаем такую страничку:
Более опытные пользователи могут прочитать документацию к OpenServer в файле помощи (из комплекта поставки) и разобраться как настроить произвольно выбранную папку для файлов будущего сайта, настроить автозапуск сервера при старте Windows и прочее (но в наш мини обзор это не входит — поэтому действуем максимально быстро, с настройками по умолчанию).
В комплекте программ OpenServer поставляется программа Xdebug — отладчик для скриптов для PHP 5.3. OpenServer для удобства разработчиков поставляется с несколькими версиями PHP/Apache/MySQL. Чтобы заработал отладчик надо выбрать в настройках версию PHP 5.3.. Для этого ПКМ → Настройки → закладка «Модули» → PHP, и выбираем версию 5.3 (по умолчанию стоит 5.2). Можно так же выбрать версию БД как MySQL 5.5. как более стабильную. [Имейте в виду, что при переключении версии сервера БД вы потеряете доступ к ранее созданным базам. Т.е. выбирать версию стоит на начальном этапе настройки сервера и потом не менять настройки версии БД.]
Еще один момент. Отладчик по умолчанию выключен, т.к. потребляет дополнительные ресурсы при работе сервера. Включим его — как обычно ПКМ на иконке сервера → Дополнительно → Конфигурация → PHP 5.3.*. Будет открыт текстовый файл настроек PHP. Пролистаем его до конца, и видим следующие строки настройки:
Меняем «0» на «1», тем самым включая отладчик, и убираем знак комментария ; в начале строки:
Еще один момент — отладчик часто конфликтует с расширением IonCube (для запуска шифрованных скриптов). Для разработки Cotonti это расширение не требуется, поэтому отключим его, поставив знак комментария (точка с запятой — ; ) в начале строки загрузки модуля (см. секцию [Ioncube Loader] тоже в конце файла):
Сохраняем файл, закрываем и производим перезапуск сервера (меню сервера, пункт «перезапустить»). Проверяем работает ли отладчик. Для этого выбираем в меню пункт «Дополнительно → Информация PHP» (или вводим руками в браузере адрес http://localhost/openserver/phpinfo.php ). И видим информацию о сервере PHP. Нас интересует первый раздел. В конце информация о подключенных модулях. Там должна быть запись о Xdebug:
Настройка домена для разработки
Настраиваем папку для будущего тестового сайта. Для этого переходим в одну из подпапок OpenServer’а — openserver\domains\localhost\ . (Это корневая папка нашего сервера для разработки). И создаем здесь подкаталог (для примера cotonti_test ) — в нем будут лежать файлы CMF Cotonti. Далее заходим в настройки OpenServer на вкладку Домены . Выбираем Ручной режим , и ниже в список добавляем запись о новом локальном домене — имя домена my-cot , папка домена \localhost\cotonti_test , не забываем нажать добавить . Если попросит перезапустить сервер — соглашайтесь.
[На самом деле шаг создания дополнительного локального домена можно было пропустить, но нам в последующем будет гораздо удобнее вводить в браузере http://my-cot , чем длинную строку http://localhost/cotonti_test .]
Проверяем — вводим адрес http://my-cot в браузере. [Рекомендую вводить целиком с префиксом http:// , т.к. в противном случае «умные» браузеры думают, что это ввод поисковой строки, и отправят вас вместо адреса сервера на сайт какой-либо поисковой системы]. Видим содержимое папки cotonti_test (пока там пусто):
Скачиваем актуальную версию с http://www.cotonti.com/download/. Сейчас это версия 0.9.14. Распаковываем содержимое архива в предварительно созданную папку cotonti_test (см. предыдущий пункт). Теперь снова в браузер и обновляем страницу с локальным адресом http://my-cot . Теперь вы должны увидеть стандартную страницу установки Cotonti:
Выбираем язык (для примера русский), жмем далее, там проверка на минимальные требования (все должно быть ОК), далее вводим имя пользователя и пароль для доступа к БД (по умолчанию это mysql / mysql ). [Продвинутым пользователям для безопасности рекомендую заранее сменить стандартные пароли через настройки сервера, и создать дополнительного пользователя для разработки. Как это сделать можно прочитать в справке OpenServer.]
Жмем далее, система создаст БД. Теперь вводим данные будущего администратора. (Для примера admin / admin, вам рекомендую вводить, что-то свое). В поле адреса вводим емейл (можно свой реальный, можно выдуманный, т.к. все письма все равно останутся на вашем тестовом сервере и в реальную сеть не попадут).
Далее, по вкусу выбираем плагины для установки. Далее установить. После установки вы должны увидеть главную страницу сайта. Можно войти под записью админа, чьи данные (admin / admin) мы только что вводили. Посмотреть и настроить админку при необходимости — подробнее см. на сайте Cotonti..
Идем на https://netbeans.org/downloads/ качаем сборку HTML5 & PHP (60 Мб) — дли примера использовался NetBeans версии 7.4. Устанавливаем. Можно в папку по умолчанию ( Program Files ). Я лично привык программы для разработки держать в отдельной папке, поэтому ставлю в C:\porta\ (но это не принципиально).
Запускаем NetBeans через ярлык в меню «Пуск» (или иным удобным для вас способом).
Настройка проекта для разработки
Тут вынесена за скобки информация по созданию собственного плагина (см. оф. сайте Cotonti.com, в том числе раздел «Разработка плагина»). Сосредоточимся на запуске отладчика скриптов, пошаговый прогон выполнения кода CMF, просмотр определенных переменных. В последующем вы можете все эти же навыки использовать и для работы над кодом собственного плагина.
Первое, что надо сделать в IDE, это создать новый проект, который будет отражать код и содержимое нашего тестового сайта ( http://my-cot ). Выбираем меню File → New Project , выбираем категорию PHP , тип проекта PHP application with existing source (т.е. приложение с уже готовым кодом), жмем Next . В качестве исаходного каталога ( Sources folder ) выбираем каталог нашего сайта — openserver\domains\localhost\cotonti_test . Имя проекта оставляем cotonti_test (версия PHP 5.3, кодировка UTF8). Переходим на следующий этап (жмем Next ) и задаем имя нашего локального сервера:
Finish , и наш проект создан. И можем его запустить (нажатием F6 или кнопкой на панели):
Настройка параметров отладчика
Теперь самое главное — попробуем запустить сайт в режиме отладки. Что это нам даст? Мы сможем отслеживать выполнение любой строчки кода последовательно с начала и до конца, или интересующий нас фрагмент, установив точку остановки.
Для начала проверим настройки для отладки в самой IDE NetBeans — меню Tools → пункт Options .
Закладка General : тут проверяем, чтобы был указан корректный путь к исполняемому файлу PHP (из установки OpenServer). Смотрим иллюстрацию и по аналогии настраиваем для своего каталога установки:
Закладка Debugging — проверьте согласно иллюстрации.
Отладка скриптов сайта при разработке
Начнем отладку. В Cotonti почти все вызовы страниц происходят через единую точку входа — файл index.php, который находится в корне сайта. С него и начнем. Открываем его, выбрав в дереве проекта в окне слева.
Если посмотреть на код, то видно что в начале идет проверка на режим установки (install), потом загрузка файла настроек config.php , потом подключение файлов функций ( functions.php ) и файла шаблонизатора ( cotemplate.php ). Далее в зависимости от вызвавшей страницы и параметров происходит загрузка (подключение) тех, или иных файлов CMS.
Однако основные переменные движка начинают формироваться в файле common.php , который подключается в строке 37. Здесь и поставим точку остановки — либо кликаем мышью на номере строки, либо нажимаем Ctrl-F8 . Теперь запускаем отладку — комбинация Ctrl-F5 или кнопка на панели инструментов:
Если все настроено правильно запустится процесс отладки — вы увидите экран браузера и страницу с иконкой загрузки. Но сама страница не отобразиться,
потому, что программа остановлена отладчиком в указанной нами точке (строка 37 файла index.php):
В верхней панели становятся доступны кнопки управление процессом отладки — остановить процесс отладки ( Shift-F5 ), продолжить до следующей точки останова ( F5 ), следующий шаг ( F8 ), шаг с заходом в процедуру/блок кода ( F7 ), выход из текущего блока ( Ctrl-F7 ), запустить до места отмеченного курсором ( F4 ). Текущая позиция отмечена в коде зеленой строкой. В правом окне мы видим список переменных, которые на данный момент уже определены в коде. Для удобства необходимые переменные можно поставить на индивидуальный контроль. Такие переменные отображаются в верхней части окна (в нашем примере это переменная $_GET). Для внесения переменной в этот список ее можно выделить в тексте и нажать (Ctrl-Shift-F7).
Будем выполнять код пошагово — нажмем F7 , чтобы войти в блок подключения файла common.php . IDE сама откроет подключаемый файла и отобразит текущую строку выполнения. Далее можем построчно двигаться по коду нажимая ( F8 — следующий шаг), и наблюдать за значениями переменных. В файле common.php происходит определение большинства системных переменных движка, здесь вы можете проследить как они формируются. Когда надоест этот процесс можно нажать F5 (продолжить до следующей точки останова), и т.к. точек остановки у нас больше нет, отладчик выполнит весь оставшийся скрипт без остановок. В окне браузера загрузится привычная вам главная страница.
Таким образом можно сделать остановку в любом месте кода, установив точку остановки в нужном файле или функции. Аналогично можно отлаживать код любой страницы CMS. Например нажмите ссылку «пользователи» на главной странице и вы попадете на отладку страницы списка пользователей (т.к. вход у нас происходит через единый файл, а точку остановки мы не сняли). Можете переключиться в IDE и продолжить пошаговое выполнение.
На этом все. Основный принципы живой отладки описаны.
p.s. Если что-то не заработало (IDE не может подключиться к отладчику), значит что-то вы упустили). Рекомендую в таком случае проштудировать вот эту статью по настройке NetBeans и XDebug, там подробно расписано что, как и зачем (правда немного для другой сборки WAMP сервера, но это не принципиально).
На самом деле в сети множество описаний-инструкций на русском по работе в IDE NetBeans. Ищите, изучайте.