php脚本也能引发(Segmentation fault)段错误?
2017-03-02 22:37
483 查看
问题复现
php报Segmentation fault错误,从事c/c++的都知道这个程序是coredump的错误提示。
为什么执行一个php导致coredump了呢?
定位过程
看了php的error_log没有找到什么蛛丝马迹,加调试代码,二分法注释代码,发现把一个class的构造方式注释掉就正常,加上就报这个错误,看了
_construct的内容:
class claB extends claA { public function __construct() { self::__construct(); } }
看着也没有什么不对啊,
咦,等等,好像有点问题,调用父类的构造方法应该是
parrent::__construct();而不是
self::__construct().
难道这样会导致coredump?做个简单测试:
<?php class claA { public function __construct() { echo "claA __construct"; } } class claB extends claA { public function __construct() { echo "claB __construct"; self::__construct(); } } $a = new claB();
cli测试:
php test.php
Segmentation fault
原因
果然。。。。原因知道了:调用了自身的
construct方法,进入死循环了。
反思
平时写代码还是要多注意这些细节啊。相关文章推荐
- GDB调试php扩展错误(Segmentation fault (core dumped))
- 关于linux的段错误(Segmentation fault)
- Linxu下段错误(segmentation fault)的调试
- FreeRTOS 中断优先级嵌套错误引发HardFault异常解决
- linux C++ 莫名奇妙的段错误(segmentation fault),无法调用其它函数
- [转载]利用GDB调试segmentation fault (core dumped)错误
- PHP单个脚本超过内存限制上限时候的错误提示信息
- php php-5.6.4.tar.bz2 apache 兼容问题 child pid 27858 exit signal Segmentation fault
- Linux环境下段错误(Segmentation fault)的产生原因及调试方法小结
- PHP脚本泄露引发Apache吃空内存,频繁宕机
- OSX brew install php Segmentation fault: 11
- 多线程使用pycurl时出现段错误(segmentation fault)
- [php-fpm自动拉起]从nginx的502错误出发谈锁机制在服务器自动监控脚本中的应用
- PHP关闭(禁止)脚本错误提示的方法及让脚本错误提示输出为日志文件的方法
- FreeRTOS 中断优先级嵌套错误引发HardFault异常解决
- 关于linux的段错误(Segmentation fault)
- PHP SOAP 错误:Uncaught SoapFault exception:[Client] looks like we got no XML document in
- 【APP】python版本低引发python脚本运行错误
- php调用shell脚本--126错误
- linux Ubuntu(Segmentation fault)段错误出现原因及调试方法