当前位置: 技术问答>linux和unix
我有个程序是查找数据的(做成一个列表),但不知道为什么会core dump,请各位指教一下。谢谢!
来源: 互联网 发布时间:2015-06-02
本文导语: 我有一个程序,是查找数据的(做成一个列表),当查找数据的时候,查到某条数据的时候就会core dump,但是,单独查找这条数据,就不会core dump。而查core文件,它提示的错误行,已经在程序执行过程中,执行过好...
我有一个程序,是查找数据的(做成一个列表),当查找数据的时候,查到某条数据的时候就会core dump,但是,单独查找这条数据,就不会core dump。而查core文件,它提示的错误行,已经在程序执行过程中,执行过好多次了。所有变量已经按照数据库的长度定义,每次调用之前,都有重新分配空间。但它就是会core,真是百思不得其解,望各位高手指教,是哪方面除了问题。
|
肯定是内存越界了,内存一越界,什么稀奇古怪的事都可能发生。内存泄漏还好检测,越界就麻烦了,不知道是哪块内存越界,是怎么引起的。
通常引起内存越界的都是由不安全调用引起的。如strcpy,sscanf等
通常引起内存越界的都是由不安全调用引起的。如strcpy,sscanf等
|
你用的什么数据库?
1.把你查出来的数据都打出来,容易排错。
2.把缓冲区给大一点看是不是还出错。
3.仔细检查诸如串结束符之类的问题。
4.到linux下调一下,看是否能通过,hp有时太严格了。
1.把你查出来的数据都打出来,容易排错。
2.把缓冲区给大一点看是不是还出错。
3.仔细检查诸如串结束符之类的问题。
4.到linux下调一下,看是否能通过,hp有时太严格了。
|
CORE的时候,系统提示信息是什么?
从目前你给的信息,可能是你的某个内存益处了,你有没有试过
如果你的循环有1000遍,让循环只做100遍会不会CORE?
从目前你给的信息,可能是你的某个内存益处了,你有没有试过
如果你的循环有1000遍,让循环只做100遍会不会CORE?
|
通常情况下,这是溢出了,程序有问题,全部帖出来才能看。