1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# The interactive PHP debugger
Implemented as a SAPI module, phpdbg can exert complete control over the
environment without impacting the functionality or performance of your code.
phpdbg aims to be a lightweight, powerful, easy to use debugging platform for
PHP 5.4+.
## Features
* Stepthrough Debugging
* Flexible Breakpoints (Class Method, Function, File:Line, Address, Opcode)
* Easy Access to PHP with built-in eval()
* Easy Access to Currently Executing Code
* Userland API
* SAPI Agnostic - Easily Integrated
* PHP Configuration File Support
* JIT Super Globals - Set Your Own!!
* Optional readline Support - Comfortable Terminal Operation
* Remote Debugging Support - Bundled Java GUI
* Easy Operation - See Help
## Planned
* Improve Everything :)
## Installation
To install **phpdbg**, you must compile the source against your PHP installation
sources, and enable the SAPI with the configure command. It is enabled by
default:
```bash
cd /path/to/php-src
./buildconf --force
./configure
make -j8
./sapi/phpdbg/phpdbg --version
```
Where the source directory has been used previously to build PHP, there exists a
file named `config.nice` which can be used to invoke configure with the same
parameters as were used by the last execution of `configure`.
**Note:** PHP must be configured with the switch `--with-readline` for phpdbg to
support history, autocompletion, tab-listing etc.
## Command line options
The following switches are implemented (just like cli SAPI):
* `-n` ignore php ini
* `-c` search for php ini in path
* `-z` load zend extension
* `-d` define php ini entry
The following switches change the default behaviour of phpdbg:
* `-v` disables quietness
* `-s` enabled stepping
* `-e` sets execution context
* `-b` boring - disables use of colour on the console
* `-I` ignore .phpdbginit (default init file)
* `-i` override .phpgdbinit location (implies -I)
* `-O` set oplog output file
* `-q` do not print banner on startup
* `-r` jump straight to run
* `-E` enable step through eval()
* `-l` listen ports for remote mode
* `-a` listen address for remote mode
* `-S` override SAPI name
**Note:** Passing `-rr` will cause phpdbg to quit after execution, rather than
returning to the console.
## Getting started
See the [website](https://phpdbg.room11.org) for tutorials/documentation.
|