标签: core-dump

linux应用程序崩溃生成的core文件在哪里找?

我试图找出我的一个 Linux 应用程序崩溃的原因。但我不知道核心在哪里。

cat /proc/sys/kernel/core_pattern
core.%e.%p
Run Code Online (Sandbox Code Playgroud)

任何的想法?

linux directory-structure core-dump

35
推荐指数
2
解决办法
10万
查看次数

清理 coredumpctl 列表

我正在寻找一种方法来删除coredumpctl list. 目前它列出了从 2014 年 12 月 14 日开始的核心转储 - 从那时到现在,我经常更新软件,以至于我怀疑那些旧的核心转储现在是否会帮助我调试任何问题。不幸的是,删除文件/var/lib/systemd/coredump只会使 coredumpctls 输出的“PRESENT”列中的星号消失。

我找不到任何方法来删除联机帮助页或 coredumpctl 的帮助输出中有关 coredump 的所有信息。

core-dump systemd

32
推荐指数
5
解决办法
2万
查看次数

分段错误(核心转储) - 到哪里?它是什么?为什么?

当 Linux 出现段错误时,Segmentation fault (core dumped)会在终端(如果有)打印错误信息,并终止程序。作为 C/C++ 开发人员,这种情况经常发生在我身上,我通常会忽略它并转到gdb,重新创建我之前的操作以再次触发无效的内存引用。相反,我想我也许可以改用这个“核心”,因为一直运行gdb是相当乏味的,而且我不能总是重新创建分段错误。

我的问题是三个:

  • 这个难以捉摸的“核心”在哪里倾倒?
  • 它包含什么?
  • 我可以用它做什么?

segmentation-fault core-dump

32
推荐指数
3
解决办法
10万
查看次数

如何在 Linux 中查看核心文件以进行调试?

我想在调试程序时查看核心文件的内容。如何查看核心文件的内容?

linux debugging core-dump

29
推荐指数
2
解决办法
14万
查看次数

如何设置核心转储文件位置(和名称)?

我在 CentOS 6 上,试图为我正在开发的应用程序启用核心转储。我已经把:

ulimit -H -c unlimited >/dev/null
ulimit -S -c unlimited >/dev/null
Run Code Online (Sandbox Code Playgroud)

在我的 bash 配置文件中,但仍未生成核心转储(在新终端中)。

我还更改了我的 /etc/security/limits.conf 以便所有用户的软限制为零。

如何设置要输出的核心文件的位置?我想指定位置并附加生成转储的时间,作为文件名的一部分?

linux core-dump

19
推荐指数
1
解决办法
9万
查看次数

当应用程序设置了 SUID 时,为什么不创建核心转储?

我设置了我的环境以创建所有崩溃的核心转储,但是当我在与执行用户不同的用户上运行设置了 SUID 的程序时,它不会创建核心转储。知道为什么会这样吗?我在网络上的任何地方都找不到它,我认为这是某种安全功能,但我想禁用它...

问题:

$ cd /tmp
$ cat /etc/security/limits.conf | grep core
*     -     core     unlimited
root  -     core     unlimited

$ ls -l ohai
-rwsr-sr-x 1 root root 578988 2011-06-23 23:29 ohai

$ ./ohai
...
Floating point exception

$ sudo -i
# ./ohai
...
Floating point exception (core dumped)
# chmod -s ohai
# exit
$ ./ohai
...
Floating point exception (core dumped)
Run Code Online (Sandbox Code Playgroud)

编辑: 为了让它尽可能安全地工作,我现在有以下脚本来设置环境:

mkdir -p /var/coredumps/
chown root:adm /var/coredumps/
chmod 772 /var/coredumps/

echo "kernel.core_pattern = /var/coredumps/core.%u.%e.%p" >> …
Run Code Online (Sandbox Code Playgroud)

linux security core-dump

17
推荐指数
2
解决办法
2万
查看次数

转储进程核心而不杀死进程

有没有办法在不实际杀死进程的情况下为进程获取核心转储(或类似的东西)?我有一个在嵌入式系统上运行的多线程 python 进程。而且我希望能够在正常条件下(即需要运行其他进程)获得进程的快照,但是我没有足够的内存来连接 gdb(或在 gdb 下运行它)而没有 python 进程作为唯一一个运行。

我希望这个问题是有道理的。

process debugging core-dump gdb

13
推荐指数
2
解决办法
9723
查看次数

最近升级到 systemd 后没有核心转储?

当我执行我正在处理的程序时,它失败并显示以下消息:

...
Aborted (core dumped)
Run Code Online (Sandbox Code Playgroud)

但是,不会创建核心转储。核心转储是以前写的,我不记得我改变了任何与它相关的东西。

当我跑ulimit -a回来时,

$ ulimit -a
core file size          (blocks, -c) unlimited
...
Run Code Online (Sandbox Code Playgroud)

其他点,

  • 我验证了我的用户可以在当前目录中创建文件。
  • 我读到了/proc/sys/fs/suid_dumpable。目前,它在我的机器上设置为 0。我试图将其更改为 1 或 2,但没有区别。
  • 我还尝试以 root 身份执行该程序,但这也没有任何区别。

不幸的是,我不记得我什么时候可以生成最后一次成功的核心转储。

core-dump systemd

12
推荐指数
1
解决办法
4645
查看次数

为什么 GDB 需要可执行文件和核心转储?

我正在使用核心转储进行调试,请注意 gdb 需要您提供可执行文件和核心转储。为什么是这样?如果核心转储包含进程使用的所有内存,那么核心转储中不包含可执行文件吗?也许不能保证整个 exe 被加载到内存中(尽管单个可执行文件通常没有那么大),或者核心转储毕竟不包含所有相关内存?是用于符号吗(也许它们没有正常加载到内存中)?

core-dump gdb

10
推荐指数
1
解决办法
1万
查看次数

迁移到 systemd 后不再有核心转储

生成 coredumps 过去工作正常,但切换到 systemd 后,我只看到消息

Aborted (core dumped)
Run Code Online (Sandbox Code Playgroud)

但没有core生成文件。和systemd有关系吗?

(背景:我的原始问题可以在这里找到。感谢 schaiba 找到解决方案。我提供了这个问答,所以如果其他人已经知道这是一个系统问题,他们可以更容易地找到解决方案。)

core-dump systemd

9
推荐指数
2
解决办法
1万
查看次数