php扩展出现段错误怎么办
php出现段错误的解决办法:首先查看“ulimit -a”;然后设置“ulimit -c unlimited”不限制core文件大小;接着使用gdb运行程序和段错误记录的文件;最后指定core文件大小即可。
成都创新互联服务项目包括伊春网站建设、伊春网站制作、伊春网页制作以及伊春网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,伊春网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到伊春省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
Linux下的C程序常常会因为内存访问错误等原因造成segment fault(段错误)此时如果系统core dump功能是打开的,那么将会有内存映像转储到硬盘上来,之后可以用gdb对core文件进行分析,还原系统发生段错误时刻的堆栈情况。这对于我们发现程序bug很有帮助。
使用ulimit -a可以查看系统core文件的大小限制;使用ulimit -c [kbytes]可以设置系统允许生成的core文件大小。
ulimit -c 0 不产生core文件
ulimit -c 100 设置core文件为100k
ulimit -c unlimited 不限制core文件大小
步骤:
1、当发生段错误时,我们查看ulimit -a (core file size (blocks, -c) 0)并没有文件,
2、设置 :ulimit -c unlimited 不限制core文件大小
3、运行程序 ,发生段错误时会自动记录在core中 (php -f WorkWithArray.php)
4、ls -al core.* 在那个文件下(-rw------- 1 leconte leconte 139264 01-06 22:3 1 core.2065)
5、使用gdb 运行程序和段错误记录的文件。(gdb ./test core.2065)
6、会提哪行有错。
很多系统默认的core文件大小都是0,我们可以通过在shell的启动脚本/etc/bashrc或者~/.bashrc等地方来加入 ulimit -c 命令来指定core文件大小,从而确保core文件能够生成。
除此之外,还可以在/proc/sys/kernel/core_pattern里设置core文件的文件名模板,详情请看core的官方man手册。
相关介绍:
Linux ulimit命令用于控制shell程序的资源。
ulimit为shell内建指令,可用来控制shell执行程序的资源。
语法
ulimit [-aHS][-c][-d <数据节区大小>][-f <文件大小>][-m <内存大小>][-n <文件数目>][-p <缓冲区大小>][-s <堆叠大小>][-t ][-u <程序数目>][-v <虚拟内存大小>]
参数:
-a 显示目前资源限制的设定。
-c
-d <数据节区大小> 程序数据节区的值,单位为KB。
-f <文件大小> shell所能建立的文件,单位为区块。
-H 设定资源的硬性限制,也就是管理员所设下的限制。
-m <内存大小> 指定可使用内存的上限,单位为KB。
-n <文件数目> 指定同一时间最多可开启的文件数。
-p <缓冲区大小> 指定管道缓冲区的大小,单位512字节。
-s <堆叠大小> 指定堆叠的上限,单位为KB。
-S 设定资源的弹性限制。
-t
-u <程序数目> 用户最多可开启的程序数目。
-v <虚拟内存大小> 指定可使用的虚拟内存上限,单位为KB。
更多相关知识,请访问PHP中文网!
文章标题:php扩展出现段错误怎么办
URL网址:http://azwzsj.com/article/cjeipo.html