dev/vim/xdebug.md
2023-11-17 10:25:08 +02:00

74 lines
1.2 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
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