mirror of
https://github.com/php/php-src.git
synced 2025-08-19 17:04:47 +02:00
82 lines
2.6 KiB
Markdown
82 lines
2.6 KiB
Markdown
phpdbginit
|
|
==========
|
|
*Setting up your debugging session automatically*
|
|
|
|
By default, phpdbg looks for *.phpdbginit* in the current working directory, this location can be overrideen on the command line:
|
|
|
|
```
|
|
phpdbg -imy.phpdbginit
|
|
```
|
|
|
|
An init file should contain one command per line, any phpdbg command is supported during init.
|
|
|
|
In addition, *.phpdbginit* can contain embedded code, allowing, for example
|
|
|
|
- the setup of auto completion
|
|
- the registration of functions
|
|
- the acquisition and pre-compilation of code
|
|
- bootstrapping a web application
|
|
|
|
It is common for C projects (PHP included) to include an init file for the GDB debugger; this would be a clever practice to adopt
|
|
for those distributing PHP library code.
|
|
|
|
The default .phpdbginit
|
|
=======================
|
|
|
|
We distribute the following init file by default, it should be copied to any directory you commonly execute in:
|
|
|
|
```
|
|
##########################################################
|
|
# .phpdbginit
|
|
#
|
|
# Lines starting with # are ignored
|
|
# Code must start and end with <: and :> respectively
|
|
##########################################################
|
|
# Place initialization commands one per line
|
|
##########################################################
|
|
# exec sapi/phpdbg/test.php
|
|
|
|
##########################################################
|
|
# Embedding code in .phpdbginit
|
|
##########################################################
|
|
<:
|
|
/*
|
|
If readline is loaded, you might want to setup completion:
|
|
*/
|
|
if (function_exists('readline_completion_function')) {
|
|
readline_completion_function(function(){
|
|
return array_merge(
|
|
get_defined_functions()['user'],
|
|
array_keys(get_defined_constants())
|
|
);
|
|
});
|
|
}
|
|
:>
|
|
##########################################################
|
|
# Now carry on initializing phpdbg ...
|
|
##########################################################
|
|
# R my_debugging_function
|
|
|
|
##########################################################
|
|
# PHP has many functions that might be useful
|
|
# ... you choose ...
|
|
##########################################################
|
|
# R touch
|
|
# R unlink
|
|
# R scandir
|
|
# R glob
|
|
|
|
##########################################################
|
|
# Remember: *you have access to the shell*
|
|
##########################################################
|
|
# The output of registered function calls is not,
|
|
# by default, very pretty (unless you implement
|
|
# and register a new implementation for phpdbg)
|
|
# The output of shell commands will usually be more
|
|
# readable on the console
|
|
##########################################################
|
|
# TLDR; if you have a good shell, use it ...
|
|
##########################################################
|
|
```
|
|
|
|
|