bug of php

遇到一个php的bug,一年多了也没见得到官方去解决,早上起来git clone了php-src,决定自己来解决了。


# git clone https://github.com/php/php-src.git

# cd php-src

基于PHP-5.6.31版本做调试

# git checkout -b PHP-5.6.31 --track origin/PHP-5.6.31

# cd ext

把vld扩展直接放到php-src/ext目录中,在编译php时通过--enable-vld就可以把vld扩展编译好,如果要单独编译vld还在改 php-src/scripts/phpize 脚本文件,太麻烦了

# git clone https://github.com/derickr/vld.git

# cd ..

最小编译PHP源代码后,就开始gdb调度,-j 4不到一分钟就编译好了

./buildconf --force --debug && ./configure --disable-all --enable-cli --enable-phpdbg --enable-vld && make -j 4




先查看各条PHP代码执行时的栈,C语言的栈和PHP语言的栈



通过vld扩展查看编译后的opcode

# sapi/cli/php -dvld.active=1 -dvld.execute=0 ../php56_bug.php



.... 要出门上班了,bug还未解决(待续)




================= 插曲 =====================

在解决这个bug过程中,查看php源代码时发现一些 宏 的注释不正确,修复后提交了一个 pull requests


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值