php-src/sapi/phpdbg
Anatol Belski 321c0cc349 Fix localized error messages and memory leaks
The FormatMessage API needs to LocalFree the delivered error messages.
In cases where messages are delivered in non ASCII compatible encoding,
the messages might be unreadable. This aligns the error message encoding
with the encoding settings in PHP, the focus is UTF-8 as default.

Initialize error buffer

Avoid code duplication
2018-09-17 10:56:50 +02:00
..
tests Perform "early-binding" directly during compilation 2018-08-24 15:18:38 +03:00
.gdbinit
.phpdbginit
Changelog.md
config.m4 Merge branch 'PHP-7.2' into PHP-7.3 2018-08-04 06:37:15 +02:00
config.w32 Disable PGO for phpdbg 2018-03-08 11:48:37 +01:00
create-test.php Make PHP development tools files and scripts executable 2018-08-29 20:58:17 +02:00
CREDITS
Makefile.frag fix man page installation 2018-08-16 06:53:56 +02:00
phpdbg.1.in Fix bug 76595: Update phpdbg man page 2018-08-04 06:34:40 +02:00
phpdbg.c Keep information about unresolved interfaces in zend_class_entry->interface_names. 2018-08-23 17:16:28 +03:00
phpdbg.h API cleanup. 2018-07-23 15:24:07 +03:00
phpdbg.init.d
phpdbg_bp.c Replace legacy zval_dtor() by zval_ptr_dtor_nogc() or even more specialized destructors. 2018-07-04 19:22:24 +03:00
phpdbg_bp.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_break.c year++ 2018-01-02 12:57:58 +08:00
phpdbg_break.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_btree.c year++ 2018-01-02 12:57:58 +08:00
phpdbg_btree.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_cmd.c Fix some misspellings 2018-08-12 16:15:45 +02:00
phpdbg_cmd.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_eol.c year++ 2018-01-02 12:57:58 +08:00
phpdbg_eol.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_frame.c Replace zval_dtor() with specialized destructors 2018-07-05 13:32:39 +03:00
phpdbg_frame.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_help.c Fix some misspellings 2018-08-12 16:15:45 +02:00
phpdbg_help.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_info.c Pack zend_constant.flags and zend_constant.module_number into reserved space inside zend_constant.value. 2018-07-26 12:58:07 +03:00
phpdbg_info.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_io.c Merge branch 'PHP-7.2' 2018-04-10 16:33:51 +08:00
phpdbg_io.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_lexer.c Regenerate scanners using re2c version >= 1.0.0 (newer version, at least, produce less code) 2018-07-25 12:49:03 +03:00
phpdbg_lexer.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_lexer.l Properly escape all filenames when exporting breakpoints 2016-11-13 13:22:06 +01:00
phpdbg_list.c year++ 2018-01-02 12:57:58 +08:00
phpdbg_list.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_opcode.c Avoid live range references in opcodes 2018-02-16 21:30:48 +01:00
phpdbg_opcode.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_out.c Replace legacy zval_dtor() by zval_ptr_dtor_nogc() or even more specialized destructors. 2018-07-04 19:22:24 +03:00
phpdbg_out.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_parser.c Remove unused PHP_PROG_LEX macro 2018-07-29 10:53:21 +02:00
phpdbg_parser.h Trailing whitespaces on sapi/* 2018-01-04 02:39:54 -02:00
phpdbg_parser.y Remove unused PHP_PROG_LEX macro 2018-07-29 10:53:21 +02:00
phpdbg_print.c Trailing whitespaces 2018-01-03 14:38:00 +01:00
phpdbg_print.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_prompt.c Fix localized error messages and memory leaks 2018-09-17 10:56:50 +02:00
phpdbg_prompt.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_rinit_hook.c year++ 2018-01-02 12:57:58 +08:00
phpdbg_rinit_hook.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_set.c Trailing whitespaces 2018-01-03 14:38:00 +01:00
phpdbg_set.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_sigio_win32.c year++ 2018-01-02 12:57:58 +08:00
phpdbg_sigio_win32.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_sigsafe.c Revert "Revert "Remove a few unused write warning"" 2016-11-20 19:18:50 +01:00
phpdbg_sigsafe.h
phpdbg_utils.c Change zend_lookup_class_ex() and zend_fetch_class_by_name() prototypes to accept optional lower-case class name as zend_string*, instead of zval*. 2018-08-22 17:07:31 +03:00
phpdbg_utils.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_wait.c Use zval_ptr_dtor() imstead of zval_dtor() 2018-07-05 17:55:54 +03:00
phpdbg_wait.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_watch.c Fix some misspellings 2018-08-12 16:15:45 +02:00
phpdbg_watch.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_webdata_transfer.c Replace legacy zval_dtor() by zval_ptr_dtor_nogc() or even more specialized destructors. 2018-07-04 19:22:24 +03:00
phpdbg_webdata_transfer.h year++ 2018-01-02 12:57:58 +08:00
phpdbg_win.c year++ 2018-01-02 12:57:58 +08:00
phpdbg_win.h year++ 2018-01-02 12:57:58 +08:00
README.md Fix link for phpdbg documentation 2018-03-11 16:37:40 +01:00
test.php
web-bootstrap.php
xml.md Fix some misspellings 2018-08-12 16:15:45 +02:00

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.

cd /usr/src/php-src/sapi
git clone https://github.com/krakjoe/phpdbg
cd ../
./buildconf --force
./configure --enable-phpdbg
make -j8
make install-phpdbg

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 for tutorials/documentation

https://phpdbg.room11.org