[问题] Exit code为139(segmentation violation)

楼主: BIAO (超越自己)   2014-05-05 20:51:45
板上的先进大家好,
小弟有一无穷循环C语言程式在Linux下执行,
执行一小时后自动异常终止,出现代码为139,
请问可能的原因是什么呢!?
还请板上先进不吝赐教,谢谢大家..
另可有建议的除错方法呢!?
作者: johnjohnlin (嗯?)   2014-05-05 21:11:00
memory leak?
作者: scott260202 (Cake)   2014-05-06 00:30:00
嗯...你的程式存取了不属于他的范围的内存
作者: bitlife (BIT一生)   2014-05-06 15:35:00
前一小时没错,一小时候出错还是代表有错,只能说前一小时没出错是运气. 另外程式码连结无法下载从你的第二点和1hr症状来猜测,很可能是race condition问题如果两thread会有共用的变量,就该用mutex确保无race现象稍微卷著看了一下程式,你另外要注意row有可能不是标准的null-terminated string,你把它放进str开头的函数可能会出问题,这是我瞄完第一个感觉.反正就是每个s开头和字串相关的函数,你就要思考它的参数有没有可能是非0结尾字串,这是常见的core dump来源之一以strcpy为例,你copy一段不是“0结尾字串”的资料(例如二进制资料),strcpy函数就会一直copy到遇到0,万一读到非你能读取的address前都碰不到0,会读进无权读取区,就SIGSEGV了你是接手维护吗?能写出这个程式,应该懂上述这基本概念

Links booklink

Contact Us: admin [ a t ] ucptt.com