首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当进程有段错误时,如何在Linux中生成核心转储?

当进程有段错误时,如何在Linux中生成核心转储?
EN

Stack Overflow用户
提问于 2017-12-27 00:34:45
回答 7查看 0关注 1票数 0

我在Linux中有一个进程,它有一个段错误。当核心转储失败时,我如何告诉它生成核心转储?

EN

回答 7

Stack Overflow用户

发布于 2017-12-27 03:51:15

这取决于您正在使用的shell。如果您正在使用bash,那么ulimited命令控制与程序执行有关的几个设置,例如是否应该转储核心。

如果你键入

代码语言:javascript
复制
ulimit -c unlimited

然后,这将告诉bash,它的程序可以转储任何大小的核心。您可以指定一个大小,如52M,而不是无限,如果你想,但在实践中,这应该不是必要的,因为核心文件的大小可能永远不会是问题。

在tcsh中,您可以键入

代码语言:javascript
复制
limit coredumpsize unlimited
票数 0
EN

Stack Overflow用户

发布于 2017-12-27 04:41:42

如前所述,这里提出的真正问题是如何在没有启用核心转储的系统上启用核心转储。这个问题在这里得到回答。

如果您来这里希望学习如何为挂起进程生成核心转储,答案是

代码语言:javascript
复制
gcore <pid>

如果gcore在您的系统中不可用,那么

代码语言:javascript
复制
kill -ABRT <pid>

不要使用kill-SEGV,因为这通常会调用信号处理程序,从而使诊断卡住过程变得更加困难。

票数 0
EN

Stack Overflow用户

发布于 2017-12-27 05:44:27

最后我所做的是在进程崩溃前将gdb附加到进程上,然后当它得到段错误时,我执行generate-core-file命令。强迫生成核心垃圾场。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100001305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档