php-src/.phpdbginit
2013-11-25 10:17:57 +00:00

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 ...
##########################################################