mattiav27 Asked: 2017-10-20 08:30:53 +0800 CST2017-10-20 08:30:53 +0800 CST 2017-10-20 08:30:53 +0800 CST 我在哪里可以找到 ubuntu 16.04LTS 中的核心转储? 772 我有一个 C++ 程序可以完成它应该做的事情,但是指针肯定有一些问题,因为它在最后崩溃并创建了一个核心转储。我的问题是我找不到核心文件,所以我无法调试它。 我努力了 ulimit -c unlimited ulimit -a 现在文件的尺寸设置为无限,但我仍然找不到核心。我已经尝试过这里写的每个文件夹,但似乎仍然没有创建核心文件。 我在哪里可以找到它? 16.04 3 个回答 Voted Best Answer kenorb 2019-01-15T13:13:56+08:002019-01-15T13:13:56+08:00 在 Ubuntu 中,核心转储由Appport处理,并且可以位于/var/crash/. 但在稳定版本中默认禁用它。 要启用 Appor,请运行:sudo systemctl enable apport.service或sudo service apport start. 要禁用,请运行:sudo systemctl disable apport.service或sudo service apport stop返回常规核心转储方法。请参阅:如何启用或禁用 Appport?. 要永久禁用,请编辑/etc/apport/crashdb.conf文件并注释以下行: 'problem_types': ['Bug', 'Package'], #通过在行首添加井号 ( )。 要禁用崩溃报告(恢复正常),请删除井号(与以前相同)。 您还可以检查core_pattern内核如何处理核心转储: $ cat /proc/sys/kernel/core_pattern |/usr/share/apport/apport %p %s %c 因此,即使核心文件被禁用ulimit,apport仍然会捕获崩溃。 也可以看看: 如何在 Linux 中生成核心转储? 核心转储,但核心文件不在当前目录中? 对于 macOS,请参阅:如何在 Mac OS X 中生成核心转储? yehudahs 2021-11-09T04:58:23+08:002021-11-09T04:58:23+08:00 以上所有对我都不起作用......我看着/var/log/apport.log: cat /var/log/apport.log 我看到了文件名: ERROR: apport (pid 3426) Mon Nov 8 14:34:07 2021: writing core dump to core._home_guest_a_out.1000.4 ... 然后我搜索整个系统 sudo find . -name "core._home_guest_a_out.1000.4..." 我找到了核心转储/var/lib/apport/coredump/ ジョージ 2019-10-16T01:42:46+08:002019-10-16T01:42:46+08:00 对于那些 googlin':(在我的情况下——Ubuntu 16.04 和 18.04 以及自定义应用程序)/var/crash仍然是空的,所以处理核心创建的快速方法(假设您使用相关的 ulimit 内置设置)是 sudo sysctl -w kernel.core_pattern=core.%u.%p.%t # to enable core generation 和 systemctl restart apport # to restore default apport settings # which, by the way, were "|/usr/share/apport/apport %p %s %c %d %P" (without quotes) 资料来源: https://utcc.utoronto.ca/~cks/space/blog/linux/CoreDumpsOnServers http://man7.org/linux/man-pages/man5/core.5.html
在 Ubuntu 中,核心转储由Appport处理,并且可以位于
/var/crash/
. 但在稳定版本中默认禁用它。要启用 Appor,请运行:
sudo systemctl enable apport.service
或sudo service apport start
.要禁用,请运行:
sudo systemctl disable apport.service
或sudo service apport stop
返回常规核心转储方法。请参阅:如何启用或禁用 Appport?.要永久禁用,请编辑
/etc/apport/crashdb.conf
文件并注释以下行:#
通过在行首添加井号 ( )。要禁用崩溃报告(恢复正常),请删除井号(与以前相同)。
您还可以检查
core_pattern
内核如何处理核心转储:因此,即使核心文件被禁用
ulimit
,apport
仍然会捕获崩溃。也可以看看:
以上所有对我都不起作用......我看着
/var/log/apport.log:
我看到了文件名:
然后我搜索整个系统
我找到了核心转储
/var/lib/apport/coredump/
对于那些 googlin':(在我的情况下——Ubuntu 16.04 和 18.04 以及自定义应用程序)
/var/crash
仍然是空的,所以处理核心创建的快速方法(假设您使用相关的 ulimit 内置设置)是和
资料来源: