Linux下如何生成coredump文件

 更新时间:2023年09月01日 15:02:32   作者:凌肖战  
这篇文章主要介绍了Linux下如何生成coredump文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

coredump文件路径

网上很多博文说到 coredump 文件默认会在某个目录下生成。

按照网上很多的说法,运行程序就会生成 core 文件,一般生成路径和可执行程序是同一个路径。

但是,我尝试在 ubuntu 20.04 系统下,没有生成 core 文件。

因此,需要查看 core 文件的生成路径。

1.查看coredump文件生成路径

查看 coredump 文件生成路径的方法:输入 cat /proc/sys/kernel/core_pattern 命令。

如下所示:

wangtian@wangtian-virtual-machine:~$ cat /proc/sys/kernel/core_pattern
/home/wangtian/coredump_file/core.%e-%p-%s

于是,我进入上述的目录下,并没有找到 coredump 文件。

网上有网友博文中提到,说这是因为 ubuntu 系统默认情况下,开启了一种服务程序 apport.service

自动生成崩溃报告,官方为了自动收集错误的。

2.更改coredump文件路径

这时,可以通过更改文件路径的方法试试。

首先,创建一个文件路径,我这里在 /home/wangtian/ 目录下创建了文件夹 coredump_file。

其次,输入 echo '/home/wangtian/coredump_file/core.%e-%p-%s' > /proc/sys/kernel/core_pattern 命令即可 更改 coredump 文件生成路径(注意:这种更改为临时更改方法)

操作如下:

可以看出,更改路径报出权限不够。

这里因为我们修改的 core_pattern 文件是只读文件,这样修改文件路径操作失败。

3.关闭 apport.service服务

那么,我们换一种思路,即关闭 apport.service 服务(这个服务其实对我们来说,没有很重要的作用)。

可以通过以下命令打开或关闭该服务:

//启用错误报告
sudo systemctl enable apport.service  //或
sudo service apport start
//关闭错误报告
sudo systemctl disable apport.service  //或
sudo service apport stop

我在ubuntu系统下,输入 sudo systemctl disable apport.service 命令无法关闭服务。

可以输入第二条命令 sudo service apport stop 命令来关闭 apport.service 服务,

操作如下:

接下来以有一段测试代码为例

代码如下:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
    char buffer[3] = {0};
    printf("---main()\n");
    memcpy(buffer, "hello,world!", 12); 
    printf("---buffer: %s\n", buffer);
    return 0;
}

运行程序(注意,程序编译时,必须加 -g 编译选项)

如下:

可以看到,在可执行程序的目录下,同时,生成了 core 文件。

接下来可以通过对这个文件进行分析来定位 bug 了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 嵌入式Linux驱动中的异步通知机制详解

    嵌入式Linux驱动中的异步通知机制详解

    这篇文章主要介绍了嵌入式Linux驱动中的异步通知机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • linux系统之如何禁用usb口

    linux系统之如何禁用usb口

    这篇文章主要介绍了linux系统之如何禁用usb口问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Linux 添加永久静态路由的方法

    Linux 添加永久静态路由的方法

    本篇文章主要介绍了Linux 添加永久静态路由的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Linux使用 iftop 实时监控网卡的流量

    Linux使用 iftop 实时监控网卡的流量

    iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等。这篇文章主要介绍了Linux 实时网卡流量监控,需要的朋友可以参考下
    2019-11-11
  • Linux下如何高效切换目录的方法

    Linux下如何高效切换目录的方法

    这篇文章主要介绍了Linux下如何高效切换目录,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • 确保Linux服务器安全 防范四种级别攻击

    确保Linux服务器安全 防范四种级别攻击

    以下的文章主要描述的是防范四种级别攻击确保Linux服务器安全,如果你对防范四种级别攻击确保Linux服务器安全心存好奇的话,以下的文章将会揭开它的神秘面纱。
    2011-03-03
  • 宝塔Linux面板之好用免费的中文Linux VPS主机控制面板适合快速建站

    宝塔Linux面板之好用免费的中文Linux VPS主机控制面板适合快速建站

    本篇文章主要介绍了宝塔Linux面板之好用免费的中文Linux VPS主机控制面板适合快速建站,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • linux下搭建go环境的安装配置讲解

    linux下搭建go环境的安装配置讲解

    今天小编就为大家分享一篇关于linux下搭建go环境的安装配置讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • 详解linux中的strings命令简介

    详解linux中的strings命令简介

    本篇文章主要介绍了linux中的strings命令简介,在linux下搞软件开发的朋友, 几乎没有不知道strings命令的。非常具有实用价值,需要的朋友可以参考下。
    2016-12-12
  • Ubuntu上Vim安装NERDTree插件的详细操作步骤

    Ubuntu上Vim安装NERDTree插件的详细操作步骤

    这篇文章主要介绍了Ubuntu上Vim安装NERDTree插件操作步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08

最新评论