11111
Advanced PHP debugger
Предостережение |
- APD is a Zend Extension, modifying the way the internals of PHP handle function calls, and thus may or may not be compatible with other Zend Extensions (for example Zend Optimizer). |
- APD is currently available as a PECL extension from http://pecl.php.net/package/apd. Make sure you have installed the CGI version of PHP and it is available in your current path along with the phpize script.
- Run the following command to download, build, and install the latest stable version of APD:
pear install apd |
- This automatically installs the APD Zend module into your PHP extensions directory. It is not mandatory to keep it there; you can store the module in any directory PHP can read as long as you set the zend_extension parameter accordingly.
- Windows users can download the extension dll php_apd.dll from http://snaps.php.net/win32/PECL_STABLE/.
- In your INI file, add the following lines:
-
zend_extension = /absolute/path/to/apd.so |
- Depending on your PHP build, the zend_extension directive can be one of the following:
-
zend_extension (non ZTS, non debug build) |
- To build APD under Windows you need a working PHP compilation environment as described on http://php.net/ -- basically, it requires you to have Microsoft Visual C++, win32build.zip, bison/flex, and some know how to get it to work. Also ensure that adp.dsp has DOS line endings; if it has unix line endings, Microsoft Visual C++ will complain about it.
-Поведение этих функций зависит от установок в php.ini.
Таблица 1. APD Configuration Options
Name | Default | Changeable | Changelog |
---|---|---|---|
apd.dumpdir | NULL | PHP_INI_ALL | |
apd.statement_tracing | "0" | PHP_INI_ALL |
Для подробного описания констант
PHP_INI_*, обратитесь к документации функции ini_set().
Краткое разъяснение конфигурационных
директив.
-
apd.dumpdir string - Sets the directory in which APD writes profile dump files. You can specify an absolute path or a relative path.
- You can specify a different directory as an argument to apd_set_pprof_trace(). apd.statement_tracing boolean - Specfies whether or not to do per-line tracings. Turning this on (1) will impact the performance of your application.
Данное расширение не определяет никакие типы ресурсов.
Данное расширение не определяет никакие константы.
-
|
- You can insert the line anywhere in your script, but if you do not start tracing at the beginning of your script you discard profile data that might otherwise lead you to a performance bottleneck.
Подсказка: If you're running the CGI version of PHP, you will need to add the '-e' flag to enable extended information for apd to work properly. For example: php -e -f script.php
bash-2.05b$ pprofp -R /tmp/pprof.22141.0 |
- The -R option used in this example sorts the profile table by the amount of real time the script spent executing a given function. The "cumm call" column reveals how many times each function was called, and the "s/call" column reveals how many seconds each call to the function required, on average.
- If you have comments, bugfixes, enhancements or want to help developing this beast, you can send an mail to apd@mail.communityconnect.com. Any help is very welcome.
Содержание
apd_breakpoint -- Stops the interpreter and waits on a CR from the socket
apd_callstack -- Returns the current call stack as an array
apd_clunk -- Throw a warning and a callstack
apd_continue -- Restarts the interpreter
apd_croak -- Throw an error, a callstack and then exit
apd_dump_function_table -- Outputs the current function table
apd_dump_persistent_resources -- Return all persistent resources as an array
apd_dump_regular_resources -- Return all current regular resources as an array
apd_echo -- Echo to the debugging socket
apd_get_active_symbols -- Get an array of the current variables names in the local scope
apd_set_pprof_trace -- Starts the session debugging
apd_set_session_trace -- Starts the session debugging
apd_set_session -- Changes or sets the current debugging level
apd_set_socket_session_trace -- Starts the remote session debugging
override_function -- Overrides built-in functions
rename_function -- Renames orig_name to new_name in the global function_table
virtual
apd_breakpoint 22222