无限递归导致 Segmentation fault
浏览:2507次 出处信息
某服务器上一个 cron job 是 shell 脚本调用 Java 程序,最近老是报 Segmentation fault, 每次看见此信息
/bin/sh: line 1: 4285 Segmentation fault java ...
总觉得无处下手,bash 的问题?Java 版本不对?信息量太少了。其实遇到这种事情不能谎,表面上没有信息一定要挖出信息来。今天仔细一看,这个脚本把标准输出重定向到一个日志文件去了,于是去看日志。这个程序的主体是对一个信息列表做循环,恰好在每个循环的关键部分开始前、结束后都会写一条日志。其目的是为了计时,不过正是这两条日志让我很快找到了错误缘由,因为发现日志文件的末尾只有一个开始前的,说面在这个循环的处理过程里面发生了 Segmentation fault.
找出程序的源代码,发现循环里面调用的方法有一个是递归的,情况就开始明朗了,猜测就是递归无法终止导致 stack overflow,segmentation fault. 果然,根据日志里最后一行日志中记录的真实数据,发现这条数据是有问题的,会导致此方法无限递归。
Wikipedia 的 Segmentation fault 词条里有一节是 "Common causes", 我这次遇到的就是最后一条。
建议继续学习:
- PHP与递归Recursion (阅读:8366)
- 循环、迭代、遍历和递归 (阅读:4567)
- 递归并不一定非得是“自己调用自己的function” (阅读:3330)
- 小心递归次数限制 (阅读:3161)
- PHP正则之递归匹配 (阅读:2793)
- 倒置字符串中的单词 (阅读:2530)
- 递归创建目录的一个函数 (阅读:2138)
- 递归字符转义 (阅读:2036)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:漫话中文自动分词和语义识别(下):句法结构和语义结构
文章信息
- 作者:qingbo.blog 来源: qingbo.blog
- 标签: Segmentation 递归
- 发布时间:2012-03-04 20:33:00
建议继续学习
近3天十大热文
-
[77] memory prefetch浅析
-
[51] find命令的一点注意事项
-
[37] 基本排序算法的PHP实现
-
[33] 卡诺模型―设计品质与设计价值的思考
-
[32] Oracle bbed工具的编译
-
[26] 8大实用又重要Mac使用技巧
-
[26] 程序员技术练级攻略
-
[24] 读书笔记-壹百度:百度十年千倍的29条法则
-
[24] 两行 JavaScript 代码
-
[21] 小屏幕移动设备网页设计注意事项