Конфигурирование xDebug (xdebug.ini с комментариями)

xdebug.ini
О чем?

Всё о том же — об отладке сценариев PHP средствами модуля xdebug, точнее сказать о том файле, который обычно вызывает ряд вопросов, на которые не всегда находятся внятные ответы — o xdebug.ini (или о части php.ini, содержащим настройки xdebug).
Представляю вашим внемлющим разумам содержимое файла конфигурации с моими комментариями в свободной форме.


Кому адресовано?

В основном материал рассчитан на программистов PHP, которые волей судьбы (случая, etc...) решили заняться профилированием и отладкой многих и многих своих кодов средствами модуля xdebug. Да ещё, плюс ко всему, с английским языком у которых не все в порядке.

Почему написал?

Потому что столкнулся с подобного рода проблемой относительно недавно… разобрался и решил поделиться с общественностью.

Чего здесь нет?

Установка, как пользоваться, где взять, кого спросить и прочие аспекты работы с xdebug, не касающиеся конфигурационного файла.

Начнем


[Подключение модуля]
zend_extension = /usr/lib/php5/20090626/xdebug.so

[Основные]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Основные настройки                            ;
; Документация http://www.xdebug.org/docs/basic ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Включение обработчика ошибок xDebug (заменяет стандартный вывод ошибок).
;
; Тип          boolean
; По умолчанию 1
; Документация http://www.xdebug.org/docs/all_settings#default_enable
xdebug.default_enable = 1

; Максимальный уровень рекурсии (превышение порога прекращает выполнение функции).
;
; Тип          integer
; По умолчанию 100
; Документация http://www.xdebug.org/docs/all_settings#max_nesting_level
xdebug.max_nesting_level = 150

; Отключение оператора подавления вывода ошибок "@".
;
; Тип          boolean
; По умолчанию 0
; Документация http://www.xdebug.org/docs/all_settings#scream
xdebug.scream = 1

[Отображения переменных]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Данные настройки влияют на вывод переменных функцией var_dump() ;
; Не влияют на отправляемые данные для удаленных клиентов         ;
; Документация http://xdebug.com/docs/display                     ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Включение xDebug для перегрузки var_dump().
;
; Тип          boolean
; По умолчанию 1
; Документация http://www.xdebug.org/docs/all_settings#overload_var_dump
xdebug.overload_var_dump = 1

; Максимальное число выводимых элементов массива или свойств объекта.
;
; Тип          integer
; По умолчанию 128
; Документация http://www.xdebug.org/docs/all_settings#var_display_max_children
xdebug.var_display_max_children = 256

; Максимальный уровень вложенности элементов в массиве или свойстве объекта.
;
; Тип          integer
; По умолчанию 3
; Документация http://www.xdebug.org/docs/all_settings#var_display_max_depth
xdebug.var_display_max_depth = 16

; Максимальная длина выводимых строк.
;
; Тип          integer
; По умолчанию 512
; Документация http://www.xdebug.org/docs/all_settings#var_display_max_data
xdebug.var_display_max_data = 1024

[Трассировка стека]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Данные настройки влияют на информативность отображение стека трассировки ;
; Вывод осуществляется при возникновении ошибок (предупреждений и т.п.)    ;
; Документация http://xdebug.com/docs/stack_trace                          ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Отображение пути к файлу в инструкциях типа include/require.
;
; Тип          boolean
; По умолчанию 1
; Документация http://www.xdebug.org/docs/all_settings#collect_includes
xdebug.collect_includes = 1

; Отображение параметров, передаваемых при вызове функции.
; Для больших сценариев может не хватить памяти для детализации параметров!
;
; Тип          integer
; По умолчанию 0
; Документация http://www.xdebug.org/docs/all_settings#collect_params
; Возможные значения:
;     0 - не отображать
;     1 - отображать тип и количество элементов (array(5), string(8))
;     2 - то же, что и "1", только с выводом подсказок (не работает в версии CLI)
;     3 - информация о переменных с учетом "Настройки отображения переменных"
;     4 - вся информация о переменных, включая имена переменных
xdebug.collect_params = 4

; Сбор информации о переменных.
; Данный параметр имеет смысл только если планируется использование функции 
; xdebug_get_declared_vars().
; Анализ может быть довольно медленным!
;
; Тип          boolean
; По умолчанию 0
; Документация http://www.xdebug.org/docs/all_settings#collect_vars
xdebug.collect_vars = 1

; Отображение суперглобальных данных.
; Данный параметр отвечает за отображение определенных данных из суперглобальных 
; переменных при возникновении ошибки.
;
; Тип          string
; По умолчанию ''
; Документация http://www.xdebug.org/docs/all_settings#dump.*
; Возможные варианты:
;     xdebug.dump.COOKIE = 
;     xdebug.dump.FILES = 
;     xdebug.dump.GET = 
;     xdebug.dump.POST = 
;     xdebug.dump.REQUEST = 
;     xdebug.dump.SERVER = 
;     xdebug.dump.SESSION = 
; Возможные значения:
;     *           - отображать всё (xdebug.dump.REQUEST = *)
;     'key1, ...' - отображать определенные значение 
;                    (xdebug.dump.SERVER = REMOTE_ADDR,REQUEST_METHOD)
xdebug.dump.REQUEST = *
xdebug.dump.SESSION = *
xdebug.dump.SERVER = REMOTE_ADDR,REQUEST_METHOD

; Вывод информации, собранной из суперглобальных массивов.
; Отображает результаты работы xdebug.dump.*
;
; Тип          boolean
; По умолчанию 1
; Документация http://www.xdebug.org/docs/all_settings#dump_globals
xdebug.dump_globals = 1

; Вывод информации, собранной из суперглобальных массивов при каждой ошибке.
; Обычно суперглобальные массивы остаются неизменными на протяжении всего скрипта, 
; поэтому нет смысла при выводе каждой ошибки отображать эти данные повторно.
; Если значение установлено в 0 - данные выводятся каждый раз.
; 
; Тип          boolean
; По умолчанию 1
; Документация http://www.xdebug.org/docs/all_settings#dump_once
xdebug.dump_once = 1

; Вывод неопределенных значений суперглобальных массивов.
; 
; Тип          boolean
; По умолчанию 0
; Документация http://www.xdebug.org/docs/all_settings#dump_undefined
xdebug.dump_undefined = 1

; Формат ссылки для имен файлов, выводимых при трассировке.
; Данные ссылки предназначены для перехода к определенному файлу и строки в нем.
; Для более детального изучения данного параметра обратитесь к документации.
; Введен в Xdebug 2.1
; 
; Тип          string
; По умолчанию ''
; Документация http://www.xdebug.org/docs/all_settings#file_link_format
xdebug.file_link_format = 

; Формат ссылки на документацию для функций.
; При нажатии на ссылку будет происходить переход по адресу, 
; указанному в данном параметре + название функции.
; 
; Тип          string
; По умолчанию http://www.php.net
; Документация http://www.xdebug.org/docs/all_settings#manual_url
xdebug.manual_url = http://www.php.net

; Вывод стека трассировки исключения.
; Действительно, даже если исключение было перехвачено.
; 
; Тип          integer
; По умолчанию 0
; Документация http://www.xdebug.org/docs/all_settings#show_exception_trace
xdebug.show_exception_trace = 1

; Вывод информации о переменных в текущей области видимости.
; Может выводить очень много информации и поэтому по умолчанию отключен.
; 
; Тип          integer
; По умолчанию 0
; Документация http://www.xdebug.org/docs/all_settings#show_local_vars
xdebug.show_local_vars = 1

; Запись различий в памяти между вызовами функции.
; Записывает в файлах трассировки при установленном xdebug.trace_format = 0.
; 
; Тип          integer
; По умолчанию 0
; Документация http://www.xdebug.org/docs/all_settings#show_mem_delta
xdebug.show_mem_delta = 1

[Следы]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Данные настройки нужны для функций, помогающих понять принцип работы приложения ;
; Документация http://xdebug.com/docs/execution_trace                             ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Включение трассировки функций автоматически.
; Делает возможным слежение в auto_prepend_file
; 
; Тип          boolean
; По умолчанию 0
; Документация http://www.xdebug.org/docs/all_settings#auto_trace
xdebug.auto_trace = 1

; Добавление значений переменных в след.
; 
; Тип          boolean
; По умолчанию 0
; Документация http://www.xdebug.org/docs/all_settings#collect_assignments
xdebug.collect_assignments = 1

; Добавление возвращаемых функциями значений в след.
; 
; Тип          boolean
; По умолчанию 0
; Документация http://www.xdebug.org/docs/all_settings#collect_return
xdebug.collect_return = 1

; Формат файла трассировки.
; 0 - человеко-понятный, 1 - для обработки парсерами (программами для чтения)
; 
; Тип          integer
; По умолчанию 0
; Документация http://www.xdebug.org/docs/all_settings#trace_format
xdebug.trace_format = 1

; Определение порядка записи файла.
; 0 - перезапись существующего файла, 1 - добавление новой записи в конец файла
; 
; Тип          integer
; По умолчанию 0
; Документация http://www.xdebug.org/docs/all_settings#trace_options
xdebug.trace_options = 0

; Директория для сохранения файлов трассировки.
; 
; Тип          string
; По умолчанию /tmp
; Документация http://www.xdebug.org/docs/all_settings#trace_output_dir
xdebug.trace_output_dir = /var/www/xdebug/log

; Формат именования файлов трассировки.
; Спецификаторы:
;     %c    crc32 текущего каталога             trace.%c    trace.1258863198.xt
;     %p    pid (id процесса)                   trace.%p    trace.5174.xt
;     %r    случайное число                     trace.%r    trace.072db0.xt
;     %s    имя сценария (полный путь файла)*   trace.%s    trace._var_www_test_php
;     %t    время в секудах с 01.01.1970        trace.%t    trace.1179434742.xt
;     %u    время в микросекундах с 01.01.1970  trace.%u    trace.1179434749_642382.xt
;     %H    $_SERVER['HTTP_HOST']*              trace.%H    trace.kossu.xt
;     %R    $_SERVER['REQUEST_URI']*            trace.%R    trace._test_php_param_1
;     %S    id сессии (берется из Cookie)       trace.%S    trace.c70c1e ... 0bbdd2a679d.xt
;     %%    символ %                            trace.%%    trace.%%.xt
; *) Все символы отличные от букв латинского алфавита и цифр будут заменены на символ "_"
; 
; Тип          string
; По умолчанию trace.%c
; Документация http://www.xdebug.org/docs/all_settings#trace_output_name
xdebug.trace_output_name = trace.%c

[Удаленная отладка]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Настройки интерфейса для удаленных клиентов ;
; Документация http://xdebug.com/docs/remote  ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Генерация расширенной информации, необходимой для точек останова удаленного отладчика.
; При включении исполняемый код увеличивается примерно на 33%, 
; что делает скрипт немного медленнее.
;
; Тип          integer
; По умолчанию 1
; Документация http://www.xdebug.org/docs/all_settings#extended_info
xdebug.extended_info = 1

; Ключ для удаленных отладчиков.
; Необходим для старта сессии удаленной отладки.
;
; Тип          string
; По умолчанию *complex*
; Документация http://www.xdebug.org/docs/all_settings#idekey
xdebug.idekey = *complex*

; Автоматический старт сеанса отладки без GET/POST запроса.
; Обычно для старта сессии необходим специальный GET/POST запрос.
; Если значение установлено в 1, xDebug будет пытаться начать сеанс отладки 
; и подключение к клиенту без GET/POST параметров.
;
; Тип          boolean
; По умолчанию 0
; Документация http://www.xdebug.org/docs/all_settings#remote_autostart
xdebug.remote_autostart = 0

; Включение режима удаленной отладки.
;
; Тип          boolean
; По умолчанию 0
; Документация http://www.xdebug.org/docs/all_settings#remote_enable
xdebug.remote_enable = 0

; Протокол отладчика.
; Xdebug 2.1 и поздние версии поддерживают только DBGp!
;
; Тип          string
; По умолчанию dbgp
; Документация http://www.xdebug.org/docs/all_settings#remote_handler
xdebug.remote_handler = dbgp

; Адрес компьютера, на котором расположен клиент отладчика.
; Настройка игнорируется, если значение xdebug.remote_connect_back установлено в 1
;
; Тип          string
; По умолчанию localhost
; Документация http://www.xdebug.org/docs/all_settings#remote_host
xdebug.remote_host = 192.168.0.99

; Активация сеанса отладки со всеми, кто передал специальный GET/POST параметр на сервер.
; Учтите, что сеанс могуть начать все, кто имеет доступ к серверу по http!
;
; Тип          boolean
; По умолчанию 0
; Документация http://www.xdebug.org/docs/all_settings#remote_connect_back
xdebug.remote_connect_back = 0

; Путь к файл-логу для записи всех, кто обращался к отладчику.
;
; Тип          string
; По умолчанию ''
; Документация http://www.xdebug.org/docs/all_settings#remote_log
xdebug.remote_log = /var/www/xdebug/log/access.log

; Настройка подключения к клиенту отладки.
; REQ - как только скрипт начал работать, JIT - при возникновении ошибки
;
; Тип          string
; По умолчанию req
; Документация http://www.xdebug.org/docs/all_settings#remote_mode
xdebug.remote_mode = req

; Порт, по которому xDebug пытается подключится к удаленному отладчику.
;
; Тип          integer
; По умолчанию 9000
; Документация http://www.xdebug.org/docs/all_settings#remote_port
xdebug.remote_port = 9000

[Профилирование]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Настройки, управляющие профилированием скриптов ;
; Документация http://xdebug.com/docs/profiler    ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Определение порядка записи.
; 0 - перезапись существующего файла, 1 - добавление новой записи в конец файла
;
; Тип          integer
; По умолчанию 0
; Документация http://www.xdebug.org/docs/all_settings#profiler_append
xdebug.profiler_append = 1

; Включение режима профилирования.
; Профилирование будет осуществляться при каждом запуске любого сценария.
; Для более управляемого профилирования используйте установку xdebug.profiler_enable_trigger
; 
; Тип          integer
; По умолчанию 0
; Документация http://www.xdebug.org/docs/all_settings#profiler_enable
xdebug.profiler_enable = 1

; Включения профилирования посредством специального GET/POST параметра.
; Если значение установлено в 1, то при выполнении сценария с GET/POST
; параметром XDEBUG_PROFILE профилирование будет выполнено вне зависимости 
; от установки xdebug.profiler_enable.
; Пример: http://www.example.com/?XDEBUG_PROFILE
;
; Тип          integer
; По умолчанию 0
; Документация http://www.xdebug.org/docs/all_settings#profiler_enable_trigger
xdebug.profiler_enable_trigger = 1

; Директория для сохранения файлов профилирования.
;
; Тип          string
; По умолчанию /tmp
; Документация http://www.xdebug.org/docs/all_settings#profiler_output_dir
xdebug.profiler_output_dir = /var/www/xdebug/log

; Формат именования файлов профилирования.
; См. xdebug.trace_output_name
; 
; Тип          string
; По умолчанию cachegrind.out.%p
; Документация http://www.xdebug.org/docs/all_settings#profiler_output_name
xdebug.profiler_output_name = cachegrind.out.%p

В принципе это все доступные на данный момент задокументированные настройки xdebug 2.1.
Почти все из них можно переопределять непосредственно вызовом ini_set().

Список литературы

Документация xdebug
Debugging Questions and Xdebug Answers
Прочие статьи…
Tags:
php, xdebug, настройка, ini, отладка кода, профайлинг

You can't comment this post because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author's username will be hidden by an alias.