为什么常常会coredump?

wudi7965 2003-09-22 10:14:50
我常用的环境是Sco OpenServer 5.0.5、Oracle 7.3.*,用Pro*C编的程序,
这些程序用cron自动定时执行。
我发现常常会出现进程coredump的情况,有时是堆栈的什么错误、有时是非法指令。
下次再次执行常常就没事了(这几次的执行理论上应是完全一样的)。
有时cron调度的Oracle exp 程序也会coredump。
这是怎么回事?
(个人感觉好像cron调度时出现coredump的情况比直接执行要多一些)
...全文
68 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wudi7965 2003-11-05
  • 打赏
  • 举报
回复
百思不得其解
xxsteven 2003-09-27
  • 打赏
  • 举报
回复
用gdb或dbxtra查看以下是什么产生的core文件。你先推测最有可能产生core的可执行程序
找到后用gdb或dbxtra ~/(可执行程序的路径) core
进入后,用T命令看core文件的堆栈位置设置,马上就可以显示产生core文件的程序的具体在哪一行,然后你在跟踪。很简单。多做几次就知道了
旭阳 2003-09-25
  • 打赏
  • 举报
回复
数组越界
指针未分配便使用
.....
luosha80 2003-09-22
  • 打赏
  • 举报
回复
一般越界的可能比较大!
CoolQ 2003-09-22
  • 打赏
  • 举报
回复
查看Coredump的内容,看看到底是错在哪里?
又可能是程序的问题,也有可能是你的系统被人入侵的结果。
litf 2003-09-22
  • 打赏
  • 举报
回复
应该是你程序 写的有点问题,否则不可能的。指针,数组越界等!
我想和调度没关系。为什么有时候没有呢,那可能是你的程序每次走的地方不一样。
所以这正是你找问题的关键点。依靠为什么有的时候有,有的时候没出现CORE,你就可以判断 出是那的问题了。
mosaic 2003-09-22
  • 打赏
  • 举报
回复
你的程序是不是重复执行一些操作?是否某些地方没有释放内存,以至于内存占用越来越大,达到进程最大内存使用量时就coredump了? 这种情况可以用个cron的脚本观察一段该进程的内存占用。
snelgar 2003-09-22
  • 打赏
  • 举报
回复
很可能是非法使用内存,导致coredump,
仔细检查代码中有关数组,指针,字符串的操作,尤其是字符串一定要赋结束符'\0'
在确知字符串大小的情况下最好使用strncmp,strncpy一类的函数

23,124

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧