当前位置:  技术问答>linux和unix

为什么常常会coredump?

    来源: 互联网  发布时间:2015-05-09

    本文导语:  我常用的环境是Sco OpenServer 5.0.5、Oracle 7.3.*,用Pro*C编的程序, 这些程序用cron自动定时执行。 我发现常常会出现进程coredump的情况,有时是堆栈的什么错误、有时是非法指令。 下次再次执行常常就没事了(这几次...

我常用的环境是Sco OpenServer 5.0.5、Oracle 7.3.*,用Pro*C编的程序,
这些程序用cron自动定时执行。
我发现常常会出现进程coredump的情况,有时是堆栈的什么错误、有时是非法指令。
下次再次执行常常就没事了(这几次的执行理论上应是完全一样的)。
有时cron调度的Oracle exp 程序也会coredump。
这是怎么回事?
(个人感觉好像cron调度时出现coredump的情况比直接执行要多一些)

|
应该是你程序 写的有点问题,否则不可能的。指针,数组越界等!
我想和调度没关系。为什么有时候没有呢,那可能是你的程序每次走的地方不一样。
所以这正是你找问题的关键点。依靠为什么有的时候有,有的时候没出现CORE,你就可以判断 出是那的问题了。

|
一般越界的可能比较大!

|
很可能是非法使用内存,导致coredump,
仔细检查代码中有关数组,指针,字符串的操作,尤其是字符串一定要赋结束符''
在确知字符串大小的情况下最好使用strncmp,strncpy一类的函数

|
数组越界
指针未分配便使用
.....

|
用gdb或dbxtra查看以下是什么产生的core文件。你先推测最有可能产生core的可执行程序
找到后用gdb或dbxtra ~/(可执行程序的路径) core 
进入后,用T命令看core文件的堆栈位置设置,马上就可以显示产生core文件的程序的具体在哪一行,然后你在跟踪。很简单。多做几次就知道了

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • coredump调试
  • purify编译后出现coredump
  • sun gdb "Bus Error(coredump)"
  • linux下的诡异coredump问题
  • 程序运行时报错..Memory fault(coredump) 怎么办...
  • hp unix coredump在最后一行return 0上
  • unix c++编程中遇到的coredump问题
  • [高手进]海量数据网络通讯,当访问请求达3万以上时,出现coredump错误。一般是什么原因?
  • for循环中为什么在第8次循环会出现“memory fault coredumpe”的错误??
  • 这个coredump让我头发白了


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3