源码安装PHP时需要构建调试版本

  1. ./configure –prefix=/usr/local/php5 –enable-debug –enable-maintainer-zts –enable-cgi –enable-cli –with-apxs2=/usr/local/apache/bin/apxs –with-mysql=/usr/local/mysql –with-config-file-path=/etc
  2. cp php.ini-development /etc/php.ini

配置PHP扩展时

  1. ./ext_skel –extname=mydebug

打开config.m4

去掉以下几行的 dnl

  1. PHP_ARG_ENABLE(heiyeluren, whether to enable heiyeluren support,
  2. [  –enable-heiyeluren           Enable heiyeluren support])

并在末尾添添加

  1. if test -z “$PHP_DEBUG”; then
  2.     AC_ARG_ENABLE(debug,
  3.     [   –enable-debug          compile with debugging symbols],[
  4.         PHP_DEBUG=$enableval
  5.     ],[ PHP_DEBUG=no
  6.     ])
  7. fi

然后执行以下构建命令

  1. phpize
  2. ./configure –with-php-config=/usr/local/php5/bin/php-config –enable-debug
  3. make
  4. make install

由于调试时需要设置断点,可以用nm查看so文件的符号表

然后用gdb调试

  1. gdb php
  2. > break zif_confirm_mydebug_compiled
  3. > run index.php

就可以让程序停到设定的函数

Comments are closed.

Post Navigation