暂无图片
分享
L
lanpangzi
2022-02-28
如何生成core文件

为什么没有生成core文件?core文件创建在什么位置?

收藏
分享
2条回答
默认
最新
嫣然

没生成core文件,可能是目录权限或limit设置太小。Redhat7 采取abrtd服务,core文件在/var/spool/abrt 目录。Core文件通常在进程当前工作目录的下创建,或与程序在相同的路径下。但如果程序中调用了chdir函数,则有可能改变了当前工作目录。这时core文件创建在chdir指定的路径下。Redhat7 使用abrtd (automatically bug report daemon )服务,core 文件会在/var/spool/abrt/ccpp* 目录下。

以Centos7 为例:

1、 确认针对用户的core文件大小没有限制。

2、 修改/etc/abrt/abrt-action-save-package-data.conf 文件,并重启abrtd服务(如果不行,重启服务器)。

OpenGPGCheck = no

ProcessUnpackaged = yes 

3、 确认/var/spool/abrt 目录下有生成ccpp* 之类的文件。

暂无图片 评论
暂无图片 有用 0
暂无图片
嫣然

kingbase 提供了HandleCrash 函数,该函数被注册为一个信号处理函数,用来处理:SIGILL,SIGBUS,SIGSEGV等信号,其子函数:StandardHandlerForSigillSigsegvSigbus_OnMainThread 用来收集堆栈信息,进程信息,并且将他们写入管道中。如果现场中需要gdb重定向,需要以下方法:

set logging file <file name>

set logging on

info threads

thread n

info functions

set logging off

然后将对应的filename拷贝回来

暂无图片 评论
暂无图片 有用 1
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏