博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP扩展段错误调试
阅读量:6883 次
发布时间:2019-06-27

本文共 809 字,大约阅读时间需要 2 分钟。

  hot3.png

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手册。

转载于:https://my.oschina.net/jackin/blog/173448

你可能感兴趣的文章
JVM运行机制
查看>>
JVM GC 机制与性能优化 2 实例测试
查看>>
oracl 数据库中查询当前时间前几天的数据
查看>>
linux环境查看tar压缩包内容,部分解压的命令
查看>>
1.1 LAMP架构介绍
查看>>
php模式设计之 单例模式
查看>>
线性时间排序总结
查看>>
jenkins安装
查看>>
Python爬虫入门:URLError异常处理
查看>>
STS导项目的顺序及注意事项
查看>>
CentOS 7 安装 Git 与 Gitlab-runner 实例
查看>>
nginx配置用户认证
查看>>
一文带你认识Spring事务
查看>>
玩转大数据系列之三:数据报表与展示
查看>>
阿里云BaaS:降低区块链应用门槛,用技术构建商业互信
查看>>
《富爸爸巴比伦最富有的人》读书笔记3000字
查看>>
分享几个国外学习网站
查看>>
一文分析java基础面试题中易出错考点
查看>>
6月21日云栖精选夜读丨CCTV5手机客户端新媒体:让赛事集锦堪比电影大片
查看>>
$ is not defined错误分析及解决
查看>>