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  设定core文件的最大值,单位为区块。

-d  程序数据节区的最大值,单位为KB。

-f  shell所能建立的最大文件,单位为区块。

-H  设定资源的硬性限制,也就是管理员所设下的限制。

-m  指定可使用内存的上限,单位为KB。

-n  指定同一时间最多可开启的文件数。

-p  指定管道缓冲区的大小,单位512字节。

-s  指定堆叠的上限,单位为KB。

-S  设定资源的弹性限制。

-t  指定CPU使用时间的上限,单位为秒。

-u  用户最多可开启的程序数目。

-v  指定可使用的虚拟内存上限,单位为KB。

更多相关知识,请访问PHP中文网!

段错误 php,php扩展出现段错误怎么办相关推荐

  1. 分段管理机制(段描述符,描述符表,段选择符)

    逻辑地址-=>线性地址-=>物理地址 前面我们提到了当使用80x86微处理器时,有三种不同的地址: 逻辑地址(logical address):包含在机器语言指令中用来指定一个操作数或一条 ...

  2. 段错误 php,如何解决php扩展出现段错误的问题

    如何解决php扩展出现段错误的问题 发布时间:2020-07-20 09:45:06 来源:亿速云 阅读:133 作者:Leah 如何解决php扩展出现段错误的问题?相信很多没有经验的人对此束手无策, ...

  3. 段错误(SIGSEGV)与总线错误(SIGBUS)

    段错误(SIGSEGV)与总线错误(SIGBUS) 前言 最近整理组里的历史代码,发现有一段程序运行有问题,喜提Segmentation fault (core dumped),这个问题一般是访问非法 ...

  4. Visual Studio2012打开时弹出“遇到异常:这可能是由某个扩展导致的”错误的解决办法...

    Visual Studio2012打开时弹出"遇到异常:这可能是由某个扩展导致的"错误的解决办法: 具体问题如下: 分析原因:网上搜集了以下,出现异常的原因是安装了第三方控件,然后 ...

  5. ORA-01652: 无法通过 128 (在表空间 LTE_PM_TEMP 中) 扩展 temp 段

    1.报错信息 ORA-01652: 无法通过 128 (在表空间 LTE_PM_TEMP 中) 扩展 temp 段 01652. 00000 - "unable to extend temp ...

  6. oracle数据库报错,ORA-01652:无法通过128(在表空间TEMP中)扩展temp段

    oracle数据库报错,ORA-01652:无法通过128(在表空间TEMP中)扩展temp段 出现这个报错一般是两种情况,oracle的temp空间不足:存在性能非常差的带全表扫描的sql占用的资源 ...

  7. ora-01652:无法通过128(在表空间space中)扩展temp段解决办法

    ora-01652:无法通过128(在表空间space中)扩展temp段解决办法.这种情况一看是当前用户所在的表空间达到32G大小上限,需要增加一个新的表空间 一.查询当前用户表空间 select u ...

  8. python运行错误-Python在运行中发生错误怎么正确处理方法,案例详解!

    在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因.在操作系统提供的调用中,返回错误码非常常见.比如打开文件的函数open(),成功时返回文件描 ...

  9. AJax错误WebForm1没有定义的javascript错误的解决方法

    笔者在研究QuickGuide.txt的文章同时,按照顺序一步步的做法,结果运行时,发现老是出现这样的错误 ,"WebForm1"没有定义的javascript错误,换了以该项目为 ...

最新文章

  1. 《算法导论》学习总结 — 13. 第13章 红黑树(2)
  2. easy-mock本地部署成功,访问报错:EADDRNOTAVAIL 0.0.0.0:7300 解决方案
  3. java多线程提高性能写法
  4. JSP简单练习-JSP动作指令
  5. (*长期更新)软考网络工程师学习笔记——Section 17 交换技术原理
  6. H3C 三种生成树协议特性的比较
  7. C#中 ??、 ?、 ?: 、?.、?[ ]、:
  8. Using SharePoint 2003 Web Services to Retrieve Data From A List
  9. 有jar包直接加密tcp请求报文_netty(十六)报文加密
  10. SQL Server数据库指标
  11. 使用surface初体验
  12. Adobe公司和谷歌公司共同开发的字体-思源黑体提供下载
  13. Latex 语法总结(持续更新)
  14. 参考文献在论文中进行引用标注
  15. decorate装饰模式
  16. python数据集处理一些方法备份(长期更新)
  17. 关于家庭小型无线网络信号不稳定的说明
  18. 计蒜客 - 蒜头君的任务
  19. 服务器cdm系统,CDM集群网站管理系统
  20. [Arduino] Arduino猪头笔记

热门文章

  1. 让理科生沉默,让文科生落泪的文史综合题
  2. 使用Adsutil.vbs来获取IIS用户的密码
  3. 病毒周报(100111至100117)
  4. 怎样建设WEB Cache
  5. 为Web程序员解毒:9个IE常见Bug的解决方案
  6. Linkis源码目录结构详解
  7. Scala变量介绍及入门示例
  8. HDFS的副本存放策略(机架感知策略)
  9. linux centos7内核降级和升级
  10. Spark RDD并行度与分区设置