编译php
加上--enable-debug --enable-phpdbg CFLAGS="-g3 -gdwarf-2"
./configure --prefix=/path --enable-debug --enable-phpdbg --with-apxs2=apxs --enable-fpm --enable-sockets --enable-mbstring CFLAGS="-g3 -gdwarf-2"
编译扩展
在config.m4文件加上
if test -z "$PHP_DEBUG"; then
AC_ARG_ENABLE(debug,
[--enable-debug compile with debugging system],
[PHP_DEBUG=$enableval], [PHP_DEBUG=no]
)
fiCFLAGS="$CFLAGS -g3 -gdwarf-2"
调试
gdb php #运行gdb,调试php
(gdb) b zif_pcap_lib_version #下函数断点
(gdb) run test.php #运行包含新函数的测试脚本
常用调试方法
宏
(gdb) info macro Q # 查看宏Q的定义位置
(gdb) macro expand ADD(1) # 展开宏ADD的调用