; This file is generated by the 'xdebug.org:html/docs/convert.php' robot ; for Xdebug 3.3.0 — do not modify by hand ; ----------------------------------------------------------------------------- ; xdebug.cli_color ; ; Type: integer, Default value: 0 ; ; If this setting is 1, Xdebug will color var_dumps and stack traces output when ; in CLI mode and when the output is a tty. On Windows, the ANSICON [1] tool ; needs to be installed. ; ; [1] http://adoxa.altervista.org/ansicon/ ; ; If the setting is 2, then Xdebug will always color var_dumps and stack trace, ; no matter whether it's connected to a tty or whether ANSICON is installed. In ; this case, you might end up seeing escape codes. ; ; See this article [1] for some more information. ; ; [1] https://derickrethans.nl/cli-color.html ; ; .. note:: ; ; This setting can additionally be configured through the ; ``XDEBUG_CONFIG``environment variable [1]. [1] ; /docs/all_settings#XDEBUG_CONFIG ; ; ;xdebug.cli_color = 0 ; ----------------------------------------------------------------------------- ; xdebug.client_discovery_header ; ; Type: string, Default value: "HTTP_X_FORWARDED_FOR,REMOTE_ADDR" ; ; If xdebug.client_discovery_header is configured to be a non-empty string, then ; the value is used as key in the ``$_SERVER`` superglobal array to determine ; which header to use to find the IP address or hostname to use for 'connecting ; back to'. This setting is only used in combination with ; xdebug.discover_client_host and is otherwise ignored. ; ; For example, if xdebug.client_discovery_header is set to ; ``HTTP_FORWARD_HOST``, then Xdebug will check ; ``$_SERVER['HTTP_FORWARD_HOST']`` to obtain the IP address to use for ; 'connecting back'. ; ; It is possible to configure multiple fallbacks by using a comma separated list ; of values. For example if you want to use ``HTTP_FORWARD_HOST`` first, and ; then also want to check ``REMOTE_ADDR``, then you set ; xdebug.client_discovery_header to ``HTTP_FORWARD_HOST,REMOTE_ADDR``. ; ; .. warning:: ; ; PHP automatically prepends ``HTTP_``, and converts ``-`` to ``_``, for ; received HTTP header names. The ``THIS-IS-MY-HOST`` HTTP header is ; converted into ``$_SERVER['HTTP_THIS_IS_MY_HOST']``. Therefore, the ; xdebug.client_discovery_header needs to be set to ``HTTP_THIS_IS_MY_HOST`` ; to match this. ; ; If you have logging enabled, and set the xdebug.log_level setting to ``10``, ; then Xdebug will list every header, the header value, and the used header (if ; any) when attempting to find the IP address to connect back to. ; ; .. note:: ; ; Xdebug 3.2 and later no longer fall back to the ; ``$_SERVER['HTTP_X_FORWARDED_FOR']`` and ``$_SERVER['REMOTE_ADDR']`` header ; values by default. If you want these headers to be used as well, you ; specifically need to add these to the list of headers, by setting ; xdebug.client_discovery_header to ; ``YOUR_OWN_HEADER,HTTP_X_FORWARDED_FOR,REMOTE_ADDR``. ; ; ;xdebug.client_discovery_header = "HTTP_X_FORWARDED_FOR,REMOTE_ADDR" ; ----------------------------------------------------------------------------- ; xdebug.client_host ; ; Type: string, Default value: localhost ; ; Configures the IP address or hostname where Xdebug will attempt to connect to ; when initiating a debugging connection. This address should be the address of ; the machine where your IDE or debugging client is listening for incoming ; debugging connections. ; ; On non-Windows platforms, it is also possible to configure a Unix domain ; socket [1] which is supported by only a select view debugging clients. In that ; case, instead of the hostname or IP address, use ``unix:///path/to/sock``. ; ; [1] https://en.wikipedia.org/wiki/Unix_domain_socket ; ; If xdebug.discover_client_host is enabled then Xdebug will only use the value ; of this setting in case Xdebug can not connect to an IDE using the information ; it obtained from HTTP headers. In that case, the value of this setting acts as ; a fallback only. ; ; .. note:: ; ; This setting can additionally be configured through the ; ``XDEBUG_CONFIG``environment variable [1]. [1] ; /docs/all_settings#XDEBUG_CONFIG ; ; ;xdebug.client_host = localhost ; ----------------------------------------------------------------------------- ; xdebug.client_port ; ; Type: integer, Default value: 9003 ; ; The port to which Xdebug tries to connect on the remote host. Port ``9003`` is ; the default for both Xdebug and the Command Line Debug Client. As many clients ; use this port number, it is best to leave this setting unchanged. ; ; .. note:: ; ; This setting can additionally be configured through the ; ``XDEBUG_CONFIG``environment variable [1]. [1] ; /docs/all_settings#XDEBUG_CONFIG ; ; ;xdebug.client_port = 9003 ; ----------------------------------------------------------------------------- ; xdebug.cloud_id ; ; Type: string, Default value: ; ; With this setting you configure Xdebug for use with Xdebug Cloud [1]. It needs ; to match one of the tokens from your profile page [2]. ; ; [1] https://xdebug.cloud ; [2] https://xdebug.cloud/profile#tokens ; ; Your IDE needs to be configured with the same token for Xdebug and your IDE to ; communicate through Xdebug Cloud. ; ; | In PhpStorm you can find this setting under: ; | File | Settings | PHP | Debug | Xdebug Cloud for Windows and Linux ; | PhpStorm | Preferences | PHP | Debug | Xdebug Cloud for macOS ; ; ;xdebug.cloud_id = ; ----------------------------------------------------------------------------- ; xdebug.collect_assignments ; ; Type: boolean, Default value: false ; ; This setting, defaulting to 0, controls whether Xdebug should add variable ; assignments to function traces. Assign-by-var ( ``=&``) assignments are ; included too. ; ; ;xdebug.collect_assignments = false ; ----------------------------------------------------------------------------- ; xdebug.collect_params ; ; Introduced in version 3.3 ; ; Type: boolean, Default value: true ; ; If enabled (default), files created with the Function Trace feature will ; include all arguments to functions and methods. ; ; When disabled, the argument to each function and method will not be present in ; the trace files. ; ; ;xdebug.collect_params = true ; ----------------------------------------------------------------------------- ; xdebug.collect_return ; ; Type: boolean, Default value: false ; ; This setting, defaulting to 0, controls whether Xdebug should write the return ; value of function calls to the trace files. ; ; ;xdebug.collect_return = false ; ----------------------------------------------------------------------------- ; xdebug.connect_timeout_ms ; ; Type: integer, Default value: 200 ; ; The amount of time in milliseconds that Xdebug will wait for on an IDE to ; acknowledge an incoming debugging connection. The default value of 200 ms ; should in most cases be enough. In case you often get dropped debugging ; requests, perhaps because you have a high latency network, or a development ; box far away from your IDE, or have a slow firewall, then you can should ; increase this value. ; ; Please note that increasing this value might mean that your requests seem to ; 'hang' in case Xdebug tries to establish a connection, but your IDE is not ; listening. ; ; ;xdebug.connect_timeout_ms = 200 ; ----------------------------------------------------------------------------- ; xdebug.discover_client_host ; ; Type: boolean, Default value: false ; ; If enabled, Xdebug will first try to connect to the client that made the HTTP ; request. It checks the ``$_SERVER['HTTP_X_FORWARDED_FOR']`` and ; ``$_SERVER['REMOTE_ADDR']`` variables to find out which hostname or IP address ; to use. ; ; If xdebug.client_discovery_header is configured, then the ``$_SERVER`` ; variable with that configured name will be checked before ; ``HTTP_X_FORWARDED_FOR`` and ``REMOTE_ADDR``. ; ; If Xdebug can not connect to a debugging client as found in one of the HTTP ; headers, it will fall back to the hostname or IP address as configured by the ; xdebug.client_host setting. ; ; This setting does not apply for debugging through the CLI, as the ``$_SERVER`` ; header variables are not available there. ; ; .. note:: ; ; This setting can additionally be configured through the ; ``XDEBUG_CONFIG``environment variable [1]. [1] ; /docs/all_settings#XDEBUG_CONFIG ; ; .. warning:: ; ; Please note that there is no filter available, and anybody who can connect ; to the webserver will then be able to start a debugging session, even if ; their address does not match xdebug.client_host. ; ; ;xdebug.discover_client_host = false ; ----------------------------------------------------------------------------- ; xdebug.dump.* ; ; Type: string, Default value: Empty ; ; * can be any of COOKIE, FILES, GET, POST, REQUEST, SERVER, SESSION. These ; seven settings control which data from the superglobals is shown when an error ; situation occurs. ; ; Each of those php.ini setting can consist of a comma separated list of ; variables from this superglobal to dump, or ``*`` for all of them. Make sure ; you do not add spaces in this setting. ; ; In order to dump the REMOTE_ADDR and the REQUEST_METHOD when an error occurs, ; and all GET parameters, add these settings: ; ; xdebug.dump.SERVER = REMOTE_ADDR,REQUEST_METHOD ; xdebug.dump.GET = * ; ; ;xdebug.dump.* = Empty ; ----------------------------------------------------------------------------- ; xdebug.dump_globals ; ; Type: boolean, Default value: true ; ; When this setting is set to ``true``, Xdebug adds the values of the super ; globals as configured through the xdebug.dump.* to on-screen stack traces and ; the error log (if enabled). ; ; ;xdebug.dump_globals = true ; ----------------------------------------------------------------------------- ; xdebug.dump_once ; ; Type: boolean, Default value: true ; ; Controls whether the values of the superglobals should be dumped on all error ; situations (set to 0) or only on the first (set to 1). ; ; ;xdebug.dump_once = true ; ----------------------------------------------------------------------------- ; xdebug.dump_undefined ; ; Type: boolean, Default value: false ; ; If you want to dump undefined values from the superglobals you should set this ; setting to 1, otherwise leave it set to 0. ; ; ;xdebug.dump_undefined = false ; ----------------------------------------------------------------------------- ; xdebug.file_link_format ; ; Type: string, Default value: ; ; This setting determines the format of the links that are made in the display ; of stack traces where file names are used. This allows IDEs to set up a ; link-protocol that makes it possible to go directly to a line and file by ; clicking on the filenames that Xdebug shows in stack traces. An example format ; might look like: ; ; myide://%f@%l ; ; The possible format specifiers are: ; ; ========= =============== ; Specifier Meaning ; ========= =============== ; %f the filename ; --------- --------------- ; %l the line number ; ========= =============== ; ; For various IDEs/OSses there are some instructions listed on how to make this ; work: ; ; -------- ; PhpStorm ; -------- ; ; In the configuration file, add the following line, including the single ; quotes. This uses PhpStorm's REST API. ; ; xdebug.file_link_format='javascript: var r = new XMLHttpRequest; r.open("get", "http://localhost:63342/api/file/%f:%l");r.send()' ; ; ; ---------------- ; Firefox on Linux ; ---------------- ; ; - Open ; ; about:config ; ; - Add a new boolean setting "network.protocol-handler.expose.xdebug" and set ; it to "false" ; ; - Add the following into a shell script ; ; ``~/bin/ff-xdebug.sh``: ; ; #! /bin/sh ; ; f=`echo $1 | cut -d @ -f 1 | sed 's/xdebug:\/\///'` ; l=`echo $1 | cut -d @ -f 2` ; ; Add to that one of (depending whether you have komodo, gvim or netbeans): ; ; - komodo $f -l $l ; ; - gvim --remote-tab +$l $f ; ; - netbeans "$f:$l" ; ; - Make the script executable with ; ; chmod +x ~/bin/ff-xdebug.sh ; ; - Set the xdebug.file_link_format setting to ; ; xdebug://%f@%l ; ; -------------------- ; Windows and Netbeans ; -------------------- ; ; - Create the file ; ; ``netbeans.bat`` and save it in your path ( ``C:\Windows`` will work): ; ; @echo off ; setlocal enableextensions enabledelayedexpansion ; set NETBEANS=%1 ; set FILE=%~2 ; set FILE=!FILE:%%5C=\! ; %NETBEANS% --nosplash --console suppress --open "%FILE:~19%" ; nircmd win activate process netbeans.exe ; ; **Note:** Remove the last line if you don't have ``nircmd``. ; ; - Save the following code as ; ; ``netbeans_protocol.reg``: ; ; Windows Registry Editor Version 5.00 ; ; [HKEY_CLASSES_ROOT\netbeans] ; "URL Protocol"="" ; @="URL:Netbeans Protocol" ; ; [HKEY_CLASSES_ROOT\netbeans\DefaultIcon] ; @="\"C:\\Program Files\\NetBeans 7.1.1\\bin\\netbeans.exe,1\"" ; ; [HKEY_CLASSES_ROOT\netbeans\shell] ; ; [HKEY_CLASSES_ROOT\netbeans\shell\open] ; ; [HKEY_CLASSES_ROOT\netbeans\shell\open\command] ; @="\"C:\\Windows\\netbeans.bat\" \"C:\\Program Files\\NetBeans 7.1.1\\bin\\netbeans.exe\" \"%1\"" ; ; **Note:** Make sure to change the path to Netbeans (twice), as well as the ; ``netbeans.bat`` batch file if you saved it somewhere else than ; ``C:\Windows\``. ; ; - Double click on the ; ; ``netbeans_protocol.reg`` file to import it into the registry. ; ; - Set the xdebug.file_link_format setting to ; ; xdebug.file_link_format = ; "netbeans://open/?f=%f:%l" ; ; ;xdebug.file_link_format = ; ----------------------------------------------------------------------------- ; xdebug.filename_format ; ; Type: string, Default value: ...%s%n ; ; This setting determines the format with which Xdebug renders filenames in HTML ; stack traces (default: ``...%s%n``) and location information through the ; overloaded xdebug_var_dump() (default: ``%f``). ; ; The possible format specifiers are listed in this table. The example output is ; rendered according to the full path ; ``/var/www/vendor/mail/transport/mta.php``. ; ; ========= ============================================== =========================================================== ; Specifier Meaning Example Output ; ========= ============================================== =========================================================== ; %a Ancester: Two directory elements and filename mail/transport/mta.php ; --------- ---------------------------------------------- ----------------------------------------------------------- ; %f Full path /var/www/vendor/mail/transport/mta.php ; --------- ---------------------------------------------- ----------------------------------------------------------- ; %n Name: Only the file name mta.php ; --------- ---------------------------------------------- ----------------------------------------------------------- ; %p Parent: One directory element and the filename transport/mta.php ; --------- ---------------------------------------------- ----------------------------------------------------------- ; %s Directory separator / ; on Linux, OSX and other Unix-like systems, ``\`` on Windows ; ========= ============================================== =========================================================== ; ; ;xdebug.filename_format = ...%s%n ; ----------------------------------------------------------------------------- ; xdebug.force_display_errors ; ; Type: integer, Default value: 0 ; ; If this setting is set to ``1`` then errors will **always** be displayed, no ; matter what the setting of PHP's display_errors [1] is. ; ; [1] https://www.php.net/manual/errorfunc.configuration.php#ini.display-errors ; ; ;xdebug.force_display_errors = 0 ; ----------------------------------------------------------------------------- ; xdebug.force_error_reporting ; ; Type: integer, Default value: 0 ; ; This setting is a bitmask, like error_reporting [1]. This bitmask will be ; logically ORed with the bitmask represented by error_reporting [2] to dermine ; which errors should be displayed. This setting can only be made in php.ini and ; allows you to force certain errors from being shown no matter what an ; application does with ini_set() [3]. ; ; [1] https://www.php.net/manual/errorfunc.configuration.php#ini.error-reporting ; [2] https://www.php.net/manual/errorfunc.configuration.php#ini.error-reporting ; [3] https://www.php.net/manual/function.ini-set.php ; ; ;xdebug.force_error_reporting = 0 ; ----------------------------------------------------------------------------- ; xdebug.gc_stats_output_name ; ; Type: string, Default value: gcstats.%p ; ; This setting determines the name of the file that is used to dump garbage ; collection statistics into. The setting specifies the format with format ; specifiers, very similar to sprintf() and strftime(). There are several format ; specifiers that can be used to format the file name. ; ; See the xdebug.trace_output_name documentation for the supported specifiers. ; ; ;xdebug.gc_stats_output_name = gcstats.%p ; ----------------------------------------------------------------------------- ; xdebug.halt_level ; ; Type: integer, Default value: 0 ; ; This setting allows you to configure a mask that determines whether, and ; which, notices and/or warnings get converted to errors. You can configure ; notices and warnings that are generated by PHP, and notices and warnings that ; you generate yourself (by means of trigger_error()). For example, to convert ; the warning of strlen() (without arguments) to an error, you would do: ; ; ini_set('xdebug.halt_level', E_WARNING); ; strlen(); ; echo "Hi!\n"; ; ; Which will then result in the showing of the error message, and the abortion ; of the script. ``echo "Hi!\n";`` will not be executed. ; ; The setting is a bit mask, so to convert all notices and warnings into errors ; for all applications, you can set this in php.ini: ; ; xdebug.halt_level=E_WARNING|E_NOTICE|E_USER_WARNING|E_USER_NOTICE ; ; The bitmask only supports the four level that are mentioned above. ; ; ;xdebug.halt_level = 0 ; ----------------------------------------------------------------------------- ; xdebug.idekey ; ; Type: string, Default value: *complex* ; ; Controls which IDE Key Xdebug should pass on to the debugging client or proxy. ; The IDE Key is only important for use with the DBGp Proxy Tool, although some ; IDEs are incorrectly picky as to what its value is. ; ; The default is based on the ``DBGP_IDEKEY`` environment setting. If it is not ; present, the default falls back to an empty string. ; ; If this setting is set to a non-empty string, it selects its value over ; ``DBGP_IDEKEY`` environment variable as default value. ; ; The internal IDE Key also gets updated through debugging session management ; and overrides the value of this setting as is explained in the Step Debugging ; documentation. ; ; .. note:: ; ; This setting can additionally be configured through the ; ``XDEBUG_CONFIG``environment variable [1]. [1] ; /docs/all_settings#XDEBUG_CONFIG ; ; ;xdebug.idekey = *complex* ; ----------------------------------------------------------------------------- ; xdebug.log ; ; Type: string, Default value: ; ; Configures Xdebug's log file. ; ; Xdebug will log to this file all file creations issues, Step Debugging ; connection attempts, failures, and debug communication. ; ; Enable this functionality by setting the value to a absolute path. Make sure ; that the system user that PHP runs at (such as ``www-data`` if you are running ; with Apache) can create and write to the file. ; ; The file is opened in append-mode, and will therefore not be overwritten by ; default. There is no concurrency protection available. ; ; The log file will include any attempt that Xdebug makes to connect to an IDE: ; ; [2693358] Log opened at 2020-09-02 07:19:09.616195 ; [2693358] [Step Debug] INFO: Connecting to configured address/port: localhost:9003. ; [2693358] [Step Debug] ERR: Could not connect to debugging client. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port). ; [2693358] [Profiler] ERR: File '/foo/cachegrind.out.2693358' could not be opened. ; [2693358] [Profiler] WARN: /foo: No such file or directory ; [2693358] [Tracing] ERR: File '/foo/trace.1485761369' could not be opened. ; [2693358] [Tracing] WARN: /foo: No such file or directory ; [2693358] Log closed at 2020-09-02 07:19:09.617510 ; ; It includes the opening time ( ``2020-09-02 07:19:09.616195``), the ; IP/Hostname and port Xdebug is trying to connect to ( ``localhost:9003``), and ; whether it succeeded ( ``Connected to client``). The number in brackets ( ; ``[2693358]``) is the Process ID. ; ; It includes: ; ; [2693358] ; process ID in brackets ; ; 2020-09-02 07:19:09.616195 ; opening time ; ; For Step Debugging: ; ; INFO: Connecting to configured address/port: localhost:9003. ; ERR: Could not connect to debugging client. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port). ; ; For Profiling: ; ; ERR: File '/foo/cachegrind.out.2693358' could not be opened. ; WARN: /foo: No such file or directory ; ; For Function Trace: ; ; ERR: File '/foo/trace.1485761369' could not be opened. ; WARN: /foo: No such file or directory ; ; All warnings and errors are described on the Description of errors page, with ; detailed instructions on how to resolve the problem, if possible. All errors ; are always logged through PHP's internal logging mechanism (configured with ; error_log [1] in ``php.ini``). All warnings and errors also show up in the ; diagnostics log that you can view by calling xdebug_info(). ; ; [1] https://www.php.net/manual/en/errorfunc.configuration.php#ini.error-log ; ; --------------------------- ; Step Debugger Communication ; --------------------------- ; ; The debugging log can also log the communication between Xdebug and an IDE. ; This communication is in XML, and starts with the `` ; ; ; ; ; ; ; The ``fileuri`` attribute lists the entry point of your application, which can ; be useful to compare to ``breakpoint_set`` commands to see if path mappings ; are set-up correctly. ; ; Beyond the `` ; ; ; And continuation commands [1]: ; ; [1] /docs/dbgp#continuation-commands ; ; <- step_into -i 9 ; -> ; ; ; ; ; You can read about DBGP - A common debugger protocol specification at its ; dedicated documation page. ; ; The xdebug.log_level setting controls how much information is logged. ; ; .. warning:: ; ; Many Linux distributions now use systemd, which implements **private tmp** ; directories. This means that when PHP is run through a web server or as ; PHP-FPM, the ``/tmp`` directory is prefixed with something akin to: ; ; /tmp/systemd-private-ea3cfa882b4e478993e1994033fc5feb-apache.service-FfWZRg ; ; ; .. note:: ; ; This setting can additionally be configured through the ; ``XDEBUG_CONFIG``environment variable [1]. [1] ; /docs/all_settings#XDEBUG_CONFIG ; ; ;xdebug.log = ; ----------------------------------------------------------------------------- ; xdebug.log_level ; ; Type: integer, Default value: 7 ; ; Configures which logging messages should be added to the log file. ; ; The log file is configured with the xdebug.log setting. ; ; The following levels are supported: ; ; ===== ============= ================================ ; Level Name Example ; ===== ============= ================================ ; 0 Criticals Errors in the configuration ; ----- ------------- -------------------------------- ; 1 Errors Connection errors ; ----- ------------- -------------------------------- ; 3 Warnings Connection warnings ; ----- ------------- -------------------------------- ; 5 Communication Protocol messages ; ----- ------------- -------------------------------- ; **7** Information Information while connecting ; ----- ------------- -------------------------------- ; 10 Debug Breakpoint resolving information ; ===== ============= ================================ ; ; Criticals, errors, and warnings always show up in the diagnostics log that you ; can view by calling xdebug_info(). ; ; Criticals and errors are additionally logged through PHP's internal logging ; mechanism (configured with error_log [1] in ``php.ini``). ; ; [1] https://www.php.net/manual/en/errorfunc.configuration.php#ini.error-log ; ; .. note:: ; ; This setting can additionally be configured through the ; ``XDEBUG_CONFIG``environment variable [1]. [1] ; /docs/all_settings#XDEBUG_CONFIG ; ; ;xdebug.log_level = 7 ; ----------------------------------------------------------------------------- ; xdebug.max_nesting_level ; ; Type: integer, Default value: 512 ; ; Controls the protection mechanism for infinite recursion protection. The value ; of this setting is the maximum level of nested functions that are allowed ; before the script will be aborted. ; ; When the maximum nesting level is reached, an "Error [1]" exception is thrown. ; ; [1] https://www.php.net/manual/class.error.php ; ; Before Xdebug 3.3, the default value was ``256``. ; ; ;xdebug.max_nesting_level = 512 ; ----------------------------------------------------------------------------- ; xdebug.max_stack_frames ; ; Type: integer, Default value: -1 ; ; Controls how many stack frames are shown in stack traces, both on the command ; line during PHP error stack traces, as well as in the browser for HTML traces. ; ; ;xdebug.max_stack_frames = -1 ; ----------------------------------------------------------------------------- ; xdebug.mode ; ; Type: string, Default value: develop ; ; This setting controls which Xdebug features are enabled. ; ; .. note:: ; ; This setting can only be set in ``php.ini`` or files like ``99-xdebug.ini`` ; that are read when a PHP process starts (directly, or through php-fpm). You ; can not set this value in ``.htaccess`` and ``.user.ini`` files, which are ; read per-request, nor through ``php_admin_value`` as used in Apache VHOSTs ; and PHP-FPM pools. ; ; The following values are accepted: ; ; off ; Nothing is enabled. Xdebug does no work besides checking whether ; functionality is enabled. Use this setting if you want close to 0 ; overhead. ; ; develop ; Enables Development Helpers including the overloaded var_dump(). ; ; coverage ; Enables Code Coverage Analysis to generate code coverage reports, mainly ; in combination with ; ; PHPUnit [1]. ; ; debug ; Enables Step Debugging. This can be used to step through your code while ; it is running, and analyse values of variables. ; ; gcstats ; Enables Garbage Collection Statistics to collect statistics about PHP's ; Garbage Collection Mechanism. ; ; profile ; Enables Profiling, with which you can analyse performance bottlenecks with ; tools like ; ; KCacheGrind [2]. ; ; trace ; Enables the Function Trace feature, which allows you record every function ; call, including arguments, variable assignment, and return value that is ; made during a request to a file. ; ; You can enable multiple modes at the same time by comma separating their ; identifiers as value to xdebug.mode: ``xdebug.mode=develop,trace``. ; ; [1] https://phpunit.readthedocs.io/en/9.0/code-coverage-analysis.html ; [2] /docs/profiler#kcachegrind ; ; -------------------------------- ; XDEBUG_MODE environment variable ; -------------------------------- ; ; You can also set Xdebug's mode by setting the ``XDEBUG_MODE`` environment ; variable on the command-line; this will take precedence over the xdebug.mode ; setting, but will not change the value of the xdebug.mode setting. ; ; .. warning:: ; ; Some web servers have a configuration option to prevent environment ; variables from being propagated to PHP and Xdebug. For example, PHP-FPM has ; a ``clear_env`` [1] configuration setting that is ``on`` by default, which ; you will need to turn ``off`` if you want to use ``XDEBUG_MODE``. Make sure ; that your web server does not clean the environment, or specifically allows ; the ``XDEBUG_MODE`` environment variable to be passed on. [1] ; https://www.php.net/manual/en/install.fpm.configuration.php#clear-env ; ; ;xdebug.mode = develop ; ----------------------------------------------------------------------------- ; xdebug.output_dir ; ; Type: string, Default value: /tmp ; ; The directory where Xdebug will write tracing, profiling, and garbage ; collection statistics to. This directory needs to be writable for the system ; user with which PHP is running. ; ; This setting can be changed in ``php.ini``, ``.htaccess`` (and equivalent ; files), and within a PHP file with ``ini_set()``. ; ; In some cases (when profiling, or when xdebug.start_with_request= ``yes`` with ; tracing), Xdebug creates the file before the script runs. In that case, ; changes made through ``ini_set()`` will not be taken into account. ; ; .. note:: ; ; This setting can additionally be configured through the ; ``XDEBUG_CONFIG``environment variable [1]. [1] ; /docs/all_settings#XDEBUG_CONFIG ; ; ;xdebug.output_dir = /tmp ; ----------------------------------------------------------------------------- ; xdebug.profiler_append ; ; Type: integer, Default value: 0 ; ; When this setting is set to 1, profiler files will not be overwritten when a ; new request would map to the same file (depending on the ; xdebug.profiler_output_name setting. Instead the file will be appended to with ; the new profile. ; ; ;xdebug.profiler_append = 0 ; ----------------------------------------------------------------------------- ; xdebug.profiler_output_name ; ; Type: string, Default value: cachegrind.out.%p ; ; This setting determines the name of the file that is used to dump traces into. ; The setting specifies the format with format specifiers, very similar to ; sprintf() and strftime(). There are several format specifiers that can be used ; to format the file name. ; ; See the xdebug.trace_output_name documentation for the supported specifiers. ; ; .. note:: ; ; This setting can additionally be configured through the ; ``XDEBUG_CONFIG``environment variable [1]. [1] ; /docs/all_settings#XDEBUG_CONFIG ; ; ;xdebug.profiler_output_name = cachegrind.out.%p ; ----------------------------------------------------------------------------- ; xdebug.scream ; ; Type: boolean, Default value: false ; ; If this setting is 1, then Xdebug will disable the @ (shut-up) operator so ; that notices, warnings and errors are no longer hidden. ; ; ;xdebug.scream = false ; ----------------------------------------------------------------------------- ; xdebug.show_error_trace ; ; Type: integer, Default value: 0 ; ; When this setting is set to 1, Xdebug will show a stack trace whenever an ; Error is raised - even if this Error is actually caught. ; ; ;xdebug.show_error_trace = 0 ; ----------------------------------------------------------------------------- ; xdebug.show_exception_trace ; ; Type: integer, Default value: 0 ; ; When this setting is set to 1, Xdebug will show a stack trace whenever an ; Exception or Error is raised - even if this Exception or Error is actually ; caught. ; ; Error 'exceptions' were introduced in PHP 7. ; ; ;xdebug.show_exception_trace = 0 ; ----------------------------------------------------------------------------- ; xdebug.show_local_vars ; ; Type: integer, Default value: 0 ; ; When this setting is set to something != 0 Xdebug's generated stack dumps in ; error situations will also show all variables in the top-most scope. Beware ; that this might generate a lot of information, and is therefore turned off by ; default. ; ; ;xdebug.show_local_vars = 0 ; ----------------------------------------------------------------------------- ; xdebug.start_upon_error ; ; Type: string, Default value: default ; ; Step Debugging can be activated when a PHP Notice or Warning is emitted, or ; when a Throwable [1] (Exception/Error) is thrown, depending on the value of ; this setting: ; ; [1] https://www.php.net/manual/en/class.throwable.php ; ; yes ; Initialise a debugging session when a PHP Notice or Warning is emitted, or ; when a Throwable is thrown. ; ; no ; default ; Do not start a debugging session upon an error situation. ; ; ;xdebug.start_upon_error = default ; ----------------------------------------------------------------------------- ; xdebug.start_with_request ; ; Type: string, Default value: default ; ; A Function Trace, Garbage Collection Statistics, Profiling, or Step Debugging ; can be activated at the start of a PHP request. Whether this happens depends ; on the value of this setting: ; ; yes ; The functionality starts when the PHP request starts, and before any PHP ; code is run. ; ; For example xdebug.mode= ``trace`` and xdebug.start_with_request= ``yes`` ; starts a Function Trace for the whole request. ; ; no ; The functionality does not get activated when the request starts. ; ; You can still start a Function Trace with xdebug_start_trace(), Step ; Debugging with xdebug_break(), or Garbage Collection Statistics with ; xdebug_start_gcstats(). ; ; trigger ; The functionality only gets activated when a specific trigger is present ; when the request starts. ; ; The name of the trigger is ``XDEBUG_TRIGGER``, and Xdebug checks for its ; presence in either ``$_ENV`` (environment variable), ``$_GET`` or ; ``$_POST`` variable, or ``$_COOKIE`` (HTTP cookie name). ; ; There is a legacy fallback to a functionality specific trigger name: ; ``XDEBUG_PROFILE`` (for Profiling), ``XDEBUG_TRACE`` (for a Function ; Trace), and ``XDEBUG_SESSION`` (for Step Debugging). ; ; There is another legacy trigger. If you set the ``XDEBUG_CONFIG`` ; environment variable to any value, then Xdebug will also get activated. ; ; Debug session management for Step Debugging is also available through ; ``XDEBUG_SESSION_START``. ; ; With xdebug.trigger_value you can control which specific trigger value ; will activate the trigger. If xdebug.trigger_value is set to an empty ; string, **any** value will be accepted. ; ; default ; The ``default`` value depends on xdebug.mode: ; ; - **debug** : ``trigger`` ; ; - **gcstats** : ``no`` ; ; - **profile** : ``yes`` ; ; - **trace** : ``trigger`` ; ; ;xdebug.start_with_request = default ; ----------------------------------------------------------------------------- ; xdebug.trace_format ; ; Type: integer, Default value: 0 ; ; The format of the trace file. ; ; ===== ============================================================================== ; Value Description ; ===== ============================================================================== ; 0 shows a human readable indented trace file with: ; ; *time index*, *memory usage*, *memory delta*, *level*, *function name*, ; *function parameters*, *filename* and *line number*. ; ----- ------------------------------------------------------------------------------ ; 1 writes a computer readable format which has two different records. There are ; different records for entering a stack frame, and leaving a stack frame. The ; table below lists the fields in each type of record. Fields are tab separated. ; ----- ------------------------------------------------------------------------------ ; 2 writes a trace formatted in (simple) HTML. ; ===== ============================================================================== ; ; Fields for the computerized format: ; ; =========== ===== ========== ========== ========== ============ ============= ========================================= =================================== ======== =========== ================ ============================================================ ; Record type 1 2 3 4 5 6 7 8 9 10 11 12 - ... ; =========== ===== ========== ========== ========== ============ ============= ========================================= =================================== ======== =========== ================ ============================================================ ; Entry level function # always '0' time index memory usage function name user-defined (1) or internal function (0) name of the include or require file filename line number no. of arguments arguments (as many as specified in field 11) - tab separated ; ----------- ----- ---------- ---------- ---------- ------------ ------------- ----------------------------------------- ----------------------------------- -------- ----------- ---------------- ------------------------------------------------------------ ; Exit level function # always '1' time index memory usage empty ; ----------- ----- ---------- ---------- ---------- ------------ ------------- ----------------------------------------- ----------------------------------- -------- ----------- ---------------- ------------------------------------------------------------ ; Return level function # always 'R' empty return value empty ; =========== ===== ========== ========== ========== ============ ============= ========================================= =================================== ======== =========== ================ ============================================================ ; ; See the introduction for Function Trace for a few examples. ; ; ;xdebug.trace_format = 0 ; ----------------------------------------------------------------------------- ; xdebug.trace_options ; ; Type: integer, Default value: 0 ; ; This settings accepts a bitfield to enable options: ; ; 1 ; Trace file data will be appended to an already existing file with the same ; name, instead of it being overwritten. ; ; 2 ; Switches the file format to a tab separated format. The format is ; described in the xdebug.trace_format setting as "format 1". ; ; 4 ; Switches to a file format that shows data as an HTML table ; ; 8 ; With this bit set, ; ; ``.xt`` is not added automatically to the end of trace file names. ; ; To combine multiple flags, you can use bitwise-OR ( ``|``). ; ; ``xdebug.trace_options=2|8`` enables both the tab separated format, and stops ; the addition of ``.xt`` to the end of the file name. ; ; ;xdebug.trace_options = 0 ; ----------------------------------------------------------------------------- ; xdebug.trace_output_name ; ; Type: string, Default value: trace.%c ; ; This setting determines the name of the file that is used to dump traces into. ; The setting specifies the format with format specifiers, very similar to ; sprintf() and strftime(). There are several format specifiers that can be used ; to format the file name. The '.xt' extension is always added automatically. ; ; The possible format specifiers are: ; ; ========= ====================================== ================= ==================================================== ; Specifier Meaning Example Format Example Filename ; ========= ====================================== ================= ==================================================== ; %c crc32 of the current working directory trace.%c trace.1258863198.xt ; --------- -------------------------------------- ----------------- ---------------------------------------------------- ; %p pid trace.%p trace.5174.xt ; --------- -------------------------------------- ----------------- ---------------------------------------------------- ; %r random number trace.%r trace.072db0.xt ; --------- -------------------------------------- ----------------- ---------------------------------------------------- ; %s script name 2 cachegrind.out.%s cachegrind.out._home_httpd_html_test_xdebug_test_php ; --------- -------------------------------------- ----------------- ---------------------------------------------------- ; %t timestamp (seconds) trace.%t trace.1179434742.xt ; --------- -------------------------------------- ----------------- ---------------------------------------------------- ; %u timestamp (microseconds) trace.%u trace.1179434749_642382.xt ; --------- -------------------------------------- ----------------- ---------------------------------------------------- ; %H $_SERVER['HTTP_HOST'] trace.%H trace.kossu.xt ; --------- -------------------------------------- ----------------- ---------------------------------------------------- ; %R $_SERVER['REQUEST_URI'] trace.%R trace._test_xdebug_test_php_var=1_var2=2.xt ; --------- -------------------------------------- ----------------- ---------------------------------------------------- ; %U $_SERVER['UNIQUE_ID'] trace.%U trace.TRX4n38AAAEAAB9gBFkAAAAB.xt ; ; 3 ; --------- -------------------------------------- ----------------- ---------------------------------------------------- ; %S session_id (from $_COOKIE if set) trace.%S trace.c70c1ec2375af58f74b390bbdd2a679d.xt ; --------- -------------------------------------- ----------------- ---------------------------------------------------- ; %% literal % trace.%% trace.%%.xt ; ========= ====================================== ================= ==================================================== ; ; 2 This one is only available for trace file names since Xdebug 2.6. ; ; 3 New in version 2.2. This one is set by Apache's mod_unique_id module [1] ; ; [1] http://httpd.apache.org/docs/current/mod/mod_unique_id.html ; ; ;xdebug.trace_output_name = trace.%c ; ----------------------------------------------------------------------------- ; xdebug.trigger_value ; ; Type: string, Default value: "" ; ; This setting can be used when xdebug.start_with_request is set to ``trigger``, ; which is the default for Step Debugging and Function Trace. ; ; In ``trigger`` mode, Xdebug will only start its functionality when the ; ``XDEBUG_TRIGGER`` is set in the environment, or when the ``XDEBUG_TRIGGER`` ; GET, POST, or COOKIE variable is set. ; ; The legacy names ``XDEBUG_SESSION`` (for Step Debugging), ``XDEBUG_PROFILE`` ; (for Profiling), and ``XDEBUG_TRACE`` (for Function Trace) can also be used ; instead of ``XDEBUG_TRIGGER``. ; ; Normally, Xdebug does not look at which value is actually used. If this ; setting is set to a non-empty string, then Xdebug will only trigger if the ; value matches the value of this setting. ; ; With the following settings: ; ; xdebug.mode=profile ; xdebug.start_with_request=trigger ; xdebug.trigger_value=StartProfileForMe ; ; Xdebug's profiler will only start when either the environment variable ; ``XDEBUG_TRIGGER`` is set to ``StartProfileForMe``, the GET or POST variable ; ``XDEBUG_TRIGGER`` is set to ``StartProfileForMe``, or when the cookie ; ``XDEBUG_TRIGGER`` has the value ``StartProfileForMe``. ; ; From Xdebug 3.1, it is possible to configure multiple values by using a comma ; separated list. In that case, Xdebug will trigger if the supplied value ; matches any of the entries that are configured through this setting: ; ; xdebug.trigger_value=StartDebuggerForMe,StartDebuggerForYou ; ; See also: ; ; xdebug.start_with_request#trigger ; For how the triggering mechanism works, and which environment and server ; variables Xdebug acts on. ; ; ;xdebug.trigger_value = "" ; ----------------------------------------------------------------------------- ; xdebug.use_compression ; ; Introduced in version 3.1 ; ; Type: boolean, Default value: true ; ; If enabled, the Function Trace and Profiling features will create GZip ; compressed files as output. This reduces diskspace. ; ; If GZip compression is not supported by Xdebug, because it was not compiled ; in, then Xdebug will add a warning to its log and xdebug_info() diagnostics ; section. ; ; It is enabled by default if Xdebug has GZip support, and disable if Xdebug ; does not have GZip support. ; ; The QCacheGrind tool that you can use to visualise profiling information does ; not support reading GZip compressed profile files, whereas KCacheGrind and ; PhpStorm do. If you are a QCacheGrind user, you should set ; xdebug.use_compression to ``false``. ; ; ;xdebug.use_compression = true ; ----------------------------------------------------------------------------- ; xdebug.var_display_max_children ; ; Type: integer, Default value: 128 ; ; Controls the amount of array children and object's properties are shown when ; variables are displayed with either xdebug_var_dump(), xdebug.show_local_vars ; or when making a Function Trace. ; ; To disable any limitation, use *-1* as value. ; ; This setting does not have any influence on the number of children that is ; send to the client through the Step Debugging feature. ; ; ;xdebug.var_display_max_children = 128 ; ----------------------------------------------------------------------------- ; xdebug.var_display_max_data ; ; Type: integer, Default value: 512 ; ; Controls the maximum string length that is shown when variables are displayed ; with either xdebug_var_dump(), xdebug.show_local_vars or when making a ; Function Trace. ; ; To disable any limitation, use *-1* as value. ; ; This setting does not have any influence on the number of children that is ; send to the client through the Step Debugging feature. ; ; ;xdebug.var_display_max_data = 512 ; ----------------------------------------------------------------------------- ; xdebug.var_display_max_depth ; ; Type: integer, Default value: 3 ; ; Controls how many nested levels of array elements and object properties are ; when variables are displayed with either xdebug_var_dump(), ; xdebug.show_local_vars or when making a Function Trace. ; ; The maximum value you can select is *1023*. You can also use *-1* as value to ; select this maximum number. ; ; This setting does not have any influence on the number of children that is ; send to the client through the Step Debugging feature. ; ; .. warning:: ; ; Setting the value to a high number could potentially result in PHP using up ; all the available memory, so use with caution. ; ; ;xdebug.var_display_max_depth = 3