猿问

如何在Linux中生成分段错误的核心转储?

如何在Linux中生成分段错误的核心转储?

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



吃鸡游戏
浏览 488回答 3
3回答

哈士奇WWW

这取决于您正在使用的shell。如果您正在使用bash,那么uLimited命令控制与程序执行有关的几个设置,例如是否应该转储核心。如果你打字ulimit -c unlimited然后,这将告诉bash,它的程序可以转储任何大小的核心。您可以指定一个大小,如52m,而不是无限,如果你想,但在实践中,这不应该是必要的,因为核心文件的大小可能永远不会是你的问题。在tcsh中,您可以键入limit coredumpsize unlimited

慕哥6287543

如前所述,这里提出的真正问题是如何在没有启用核心转储的系统上启用核心转储。这个问题在这里得到回答。如果您来这里希望学习如何为挂起进程生成核心转储,答案是gcore&nbsp;<pid>如果gcore在您的系统中不可用,那么kill&nbsp;-ABRT&nbsp;<pid>不要使用杀害-SEGV,因为这通常会调用信号处理程序,从而使诊断卡住过程更加困难。

泛舟湖上清波郎朗

若要检查在何处生成核心转储,请运行:sysctl&nbsp;kernel.core_pattern或:cat&nbsp;/proc/sys/kernel/core_pattern哪里%e是进程名和%t系统时间。你可以在/etc/sysctl.conf重装sysctl -p.如果没有生成核心文件(通过以下方法进行测试):sleep 10 &和killall -SIGSEGV sleep),通过以下方式检查限制:ulimit -a.如果您的核心文件大小有限,请运行:ulimit&nbsp;-c&nbsp;unlimited让它不受限制。然后再次测试,如果核心转储成功,您将在分段错误指示之后看到“(核心转储)”,如下所示:分割故障:11(核倾弃)另见:内核转储-但是核心文件不在当前目录中?乌本图在Ubuntu中,核心转储由apport并且可以定位在/var/crash/..但是,在稳定版本中,默认情况下会禁用它。欲知更多详情,请参阅:我在哪里找到Ubuntu的核心转储?.MacOS关于MacOS,见:如何在MacOSX中生成核心转储?
随时随地看视频慕课网APP
我要回答