PHP扩展开发小记
2016-06-14 16:50
471 查看
之前开发的Xukey,在PHP5.6和5.6之前的版本都没有任何问题,在兼容PHP7之后,执行生成随机数会出现“”段错误“”。编译扩展时加入debug,提示php terminated *** stack smashing dete。这样的错误和没有提示直接退出没有什么区别。之后又用gdb调试,这个错误明显一些,提示 /sysdeps/x86_64/rawmemchr.s:37。不过仍然是丈二的和尚摸不着头脑。
于是,在PHP扩展开发群里提问,有个朋友提示说你换CLANG吧,这个提示很明显。于是就换了clang。这次奇迹真的发生了,虽然编译仍然没有问题,但是在内存泄露的时候给出了提示,并且提示是某个文件的第几行。哇。真的这么神奇吗?恩,就是这么神奇,看来真的应该淘汰GCC了。
编译PHP切换为clang需要执行如下命令:alias cc=clang。这样编译的时候就会使用clang来编译了。还有一点clang编译速度比gcc要快很多
于是,在PHP扩展开发群里提问,有个朋友提示说你换CLANG吧,这个提示很明显。于是就换了clang。这次奇迹真的发生了,虽然编译仍然没有问题,但是在内存泄露的时候给出了提示,并且提示是某个文件的第几行。哇。真的这么神奇吗?恩,就是这么神奇,看来真的应该淘汰GCC了。
编译PHP切换为clang需要执行如下命令:alias cc=clang。这样编译的时候就会使用clang来编译了。还有一点clang编译速度比gcc要快很多
相关文章推荐
- 关于LayoutParams(int width, int height, float weight) 参数解析
- php代码效率测试
- phpmyadmin允许空密码登陆
- 我所认识的PHP(二)
- PHP CI框架中实现事物回滚
- php防注入
- ThinkPHP 框架基础
- php的socket通信
- TP框架基础
- Thinkphp 控制器
- LNMP 部署Thinkphp项目
- thinkphp分页
- php的json和数组转换
- thinkphp getField( )和field( )
- PHP构造函数和析构函数
- 解析PHP处理换行符的问题 \r\n
- php缓存技术
- php导出CSV文件乱码或无内容的问题
- thinkphp登录代码
- PHP主要配置优化