85 lines
1.5 KiB
Markdown
85 lines
1.5 KiB
Markdown
# XDebug
|
|
|
|
- XDebug uses the DBGP protocol
|
|
|
|
## Install
|
|
|
|
```sh
|
|
dnf install php82-php-pecl-xdebug3
|
|
```
|
|
|
|
### Config
|
|
|
|
`/etc/php.d/90-xdebug.ini`
|
|
|
|
```ini
|
|
[XDebug]
|
|
zend_extension=/opt/remi/php82/root/usr/lib64/php/modules/xdebug.so
|
|
xdebug.remote_enable=1
|
|
xdebug.remote_autostart=1
|
|
xdebug.mode=develop,gcstats,coverage,profile,debug
|
|
xdebug.client_host=localhost
|
|
xdebug.client_port=9003
|
|
xdebug.idekey="NVIM"
|
|
xdebug.log=/tmp/xdebug.log
|
|
xdebug.log_level = 7
|
|
|
|
; always initiate a debugging session
|
|
xdebug.start_with_request=yes
|
|
|
|
; activates if a "trigger" is present
|
|
;xdebug.start_with_request=trigger
|
|
```
|
|
|
|
`php -v`
|
|
|
|
```
|
|
PHP 8.2.12 (cli) (built: Oct 24 2023 19:22:16) (NTS gcc x86_64)
|
|
Copyright (c) The PHP Group
|
|
Zend Engine v4.2.12, Copyright (c) Zend Technologies
|
|
with Zend OPcache v8.2.12, Copyright (c), by Zend Technologies
|
|
with Xdebug v3.2.2, Copyright (c) 2002-2023, by Derick Rethans
|
|
```
|
|
|
|
Show current settings
|
|
|
|
```sh
|
|
php -r 'xdebug_info();'
|
|
```
|
|
## Trigger
|
|
|
|
|
|
Xdebug will initiate a debug session in the presence of the XDEBUG_SESSION HTTP cookie.
|
|
|
|
You can pick any value for the cookie, unless xdebug.trigger_value is set.
|
|
|
|
A typical header looks like:
|
|
|
|
```
|
|
Cookie: XDEBUG_SESSION=start
|
|
```
|
|
|
|
To signal the debugger to initiate connections, Xdebug will look whether the XDEBUG_SESSION environment variable is present.
|
|
|
|
```
|
|
export XDEBUG_SESSION=1
|
|
```
|
|
|
|
Watch the logs
|
|
|
|
```sh
|
|
tail -f /tmp/xdebug.log
|
|
```
|
|
|
|
|
|
### Test
|
|
|
|
```sh
|
|
php --info
|
|
```
|
|
|
|
|
|
### debug
|
|
|
|
- port 9003 must not been blocked
|