怎么能让我的程序在崩溃时生成dump文件

山中岁月 2010-09-23 07:02:43
在windows下有dbghelp的接口,可以在程序崩溃或出现异常的时候自己生成一个dump文件,但是在linux下要如何做到呢,有什么工具吗?

还有生成dump后,怎么查看呢?

还望各位朋友教教我啊^_^
...全文
678 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
nodeadbird520 2010-09-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 eclipse_2 的回复:]
系统默认的coredump的大小为0 所以不会产生coredump
用ulimit -c unlimited可以设置为不限制大小
然后就会产生coredump文件了
[/Quote]
这位朋友已经说出来了。
justkk 2010-09-24
  • 打赏
  • 举报
回复
关注..
小魔菇 2010-09-23
  • 打赏
  • 举报
回复
系统默认的coredump的大小为0 所以不会产生coredump
用ulimit -c unlimited可以设置为不限制大小
然后就会产生coredump文件了
Linux-Torvalds 2010-09-23
  • 打赏
  • 举报
回复
编译的时候加上-g参数。程序崩溃的时候会自动在当前目录下生成。FreeBSD或者Solaris中使用sysctl或者coreadm指定core文件生成的目录。

而那个命令式查看core文件的大小的。
$ ulimit -c
# 查看core文件的大小

可以使用gdb查看。
$ gdb EXECUTABLE-FILE COREFILE

进入gdb的调适管理,使用print,backtrace,up,down等调试命令查看。
qihuanfengyun 2010-09-23
  • 打赏
  • 举报
回复
路过,学习了!!!
山中岁月 2010-09-23
  • 打赏
  • 举报
回复
刚才自己试了一下,似乎只用 -c 就可以控制core文件是否输出
山中岁月 2010-09-23
  • 打赏
  • 举报
回复
谢谢啊,正在研究
ulimit这个命令我查了一下,好像可以设置很多东西

ulimit -S -c unlimited > /dev/null 2>&1

这个命令能帮我解释一下吗,-S 是设定资源的弹性限制的意思,是怎么控制生成core文件的呢?
louyong0571 2010-09-23
  • 打赏
  • 举报
回复
记得用ulimit命令可以来控制是否产生core文件,可以用gdb结合程序来看core文件的堆栈。
http://www.groad.net/bbs/read.php?tid-1472.html
参考下,说不定有用

23,127

社区成员

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

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