mirror of
https://github.com/php/php-src.git
synced 2024-12-24 09:18:17 +08:00
cee72c13d7
Including phpdbg.
106 lines
2.5 KiB
Plaintext
106 lines
2.5 KiB
Plaintext
##########################################################
|
|
# .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
|
|
# set color prompt white-bold
|
|
# set color notice green
|
|
# set color error red
|
|
|
|
##########################################################
|
|
# Embedding code in .phpdbginit
|
|
##########################################################
|
|
<:
|
|
/*
|
|
* This embedded PHP is executed at init time
|
|
*/
|
|
|
|
/*
|
|
* Functions defined and registered by init
|
|
* will persist across cleans
|
|
*/
|
|
|
|
/*
|
|
function my_debugging_function()
|
|
{
|
|
var_dump(func_get_args());
|
|
}
|
|
*/
|
|
|
|
/* phpdbg_break(PHPDBG_METHOD, "phpdbg::method"); */
|
|
/* phpdbg_break(PHPDBG_FUNC, "my_global_function"); */
|
|
/* phpdbg_break(PHPDBG_FILE, "/path/to/file.php:10"); */
|
|
|
|
/*
|
|
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())
|
|
);
|
|
});
|
|
}
|
|
|
|
/*
|
|
Setting argv made trivial ...
|
|
|
|
argv 1 2 3 4
|
|
^ set argv for next execution
|
|
|
|
argv
|
|
^ unset argv for next execution
|
|
|
|
*/
|
|
function argv()
|
|
{
|
|
$argv = func_get_args();
|
|
|
|
if (!$argv) {
|
|
$_SERVER['argv'] = array();
|
|
$_SERVER['argc'] = 0;
|
|
return;
|
|
}
|
|
|
|
$_SERVER['argv'] = array_merge
|
|
(
|
|
array("phpdbg"),
|
|
$argv
|
|
);
|
|
$_SERVER['argc'] = count($_SERVER['argv']);
|
|
|
|
return $_SERVER['argv'];
|
|
}
|
|
:>
|
|
##########################################################
|
|
# Now carry on initializing phpdbg ...
|
|
##########################################################
|
|
# R my_debugging_function
|
|
# R argv
|
|
|
|
##########################################################
|
|
# 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 ...
|
|
##########################################################
|