CentOS 版本 6.10(最终版)
GNU gdb (GDB) 红帽企业 Linux (7.2-92.el6)
我的程序崩溃并生成核心转储。不幸的是,它试图将其转储到我的主目录中,而该目录几乎没有空间容纳它:
BFD:警告:core.30906 被截断:预期核心文件大小 >= 155732344832,发现:29430394880。
我需要进行一些设置,以便当我启动程序时,任何核心转储都将转到我指定的有可用空间的位置。我看过这里,但答案似乎需要 sudo,并且适用于所有帐户。我需要一些无需 root 访问权限即可工作且仅适用于我的帐户的东西。
答案1
您可以使用/sbin/sysctl kernel.core_pattern
无 root 访问权限来查看当前的核心文件命名模式。
如果模式不以字符开头/
,则将相对于转储核心的程序的当前工作目录创建核心文件。因此,如果您的程序位于$HOME/myprogram
,请执行以下操作:
cd /location/with/enough/space/and/writable/for/you
$HOME/myprogram
现在应该在所需位置而不是 $HOME 中生成核心转储。