`
ikon
  • 浏览: 107803 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

coredump使用方法

    博客分类:
  • jvm
 
阅读更多

Linux系统下程序出错时会自动生成一个core文件,该文件包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等。下面简单介绍coredump使用方法。

1.       coredump的开关和core文件大小限制

  • 首先检查生成core文件的选项是否打开

ulimit –c (查看core dump文件的大小,一般开始是0)

0         (表示coredump开关处于关闭状态)

  • 输入如下命令修改core文件大小,单位kbytes

ulimit -c 1024       #最大1024kb

ulimit -c unlimited  #取消大小限制

同时可以使用ulimit –a命令显示当前的各种用户进程限制

1 ulimit –a
2 ###结果如下
3 core file size          (blocks, -c) unlimited
4 data seg size           (kbytes, -d) unlimited
5 scheduling priority             (-e) 0
6 file size               (blocks, -f) unlimited
7 pending signals                 (-i) 38912
8 max locked memory       (kbytes, -l) 32
9 max memory size         (kbytes, -m) unlimited
10 open files                      (-n) 1024
11 pipe size            (512 bytes, -p) 8
12 POSIX message queues     (bytes, -q) 819200
13 real-time priority              (-r) 0
14 stack size              (kbytes, -s) 10240
15 cpu time               (seconds, -t) unlimited
16 max user processes              (-u) 38912
17 virtual memory          (kbytes, -v) unlimited
18 file locks                      (-x) unlimited

2.       core文件的名称和生成路径

/proc/sys/kernel/core_uses_pid 可以控制产生的 core 文件的文件名中是否添加 pid 作为扩展 ,如果添加则文件内容为 1 ,否则为 0。需要修改的话,可以使用如下命令:

echo "1" > proc/sys/kernel/core_uses_pid

proc/sys/kernel/core_pattern 可以设置格式化的 core 文件保存位置或文件名 ,默认的是|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e。需要修改的话,可以使用如下命令:

echo "/media/test/core-%e-%p-%t">/proc/sys/kernel/core_pattern

参数列表:

%p - insert pid into filename 添加pid

%u - insert current uid into filename添加当前uid

%g - insert current gid into filename添加当前gid

%s - insert signal that caused the coredump into the filename添加导致产生core的信号

%t - insert UNIX time that the coredump occurred into filename添加core文件生成时的unix时间

%h - insert hostname where the coredump happened into filename添加主机名

%e - insert coredumping executable name into filename添加命令名

3.       生成core文件并使用gdb进行调试

  • 首先编写一个测试的程序,产生core文件
1 mkdir /media/test
2  
3 vi /media/test/test.c

输入如下内容

#include <assert.h>

int main()

{assert(0);

return 0;}

  • 将test.c的代码进行编译连接,生成并执行可执行文件test
1 gcc –g test.c -o test
2  
3 ./test  ###执行可执行文件test
4  
5 ###结果如下:
6  
7 ###test : test.c : 4 : main: Assertion ‘0’ failed.
8  
9 ###已放弃(core dumped)
  • 使用gdb进行调试
1 gdb -c /media/test/core-test-3779-1345098973

分享到:
评论

相关推荐

    linux coredump分析方法实例介绍

    Linux Core Dump 分析方法实例介绍 本文将通过实例来介绍 Linux 中如何进行 Core Dump 分析,解决死机问题。 一、Core Dump 介绍 ...同时,我们也可以了解到 GDB 调试器的使用方法和 Core Dump 分析的步骤。

    Coredump简介及使用

    标题《Coredump简介及使用》和描述《Android Coredump简介及使用_v1.0_***.pdf》揭示了文档主要介绍Coredump的基本概念、产生的原因、控制产生Coredump的方法以及如何使用Coredump文件。Coredump机制广泛存在于多个...

    ubuntu-linux下程序崩溃生成coredump的方法.pdf

    ### Ubuntu Linux 下程序崩溃生成 Core Dump 的方法 #### 一、Linux 下 Core Dump 文件 **Core Dump 文件** 是一种在程序崩溃时由操作系统自动生成的文件,它包含了程序崩溃时刻的内存快照以及相关的系统信息。这...

    SegmentFault(coredump)调试方法.pdf

    【SegmentFault(coredump)调试方法】 在编程和软件开发过程中,遇到程序崩溃或SegmentFault是一种常见的问题。这时,利用core dump进行调试可以帮助开发者找出问题的根源。core dump是操作系统在程序异常终止时生成...

    coredump问题原理探究-Linux x86版.rar

    本资料"coredump问题原理探究-Linux x86版"聚焦于Linux环境下,特别是x86架构下的核心转储文件分析,旨在帮助开发者深入理解core dump的工作机制,并提供有效的定位和解决问题的方法。 一、core dump的基本概念 1. ...

    Linux下MySQL数据库使用coredump注意事项

    在Linux环境下,MySQL数据库的使用过程中,遇到故障或者异常情况时,我们可能需要利用coredump来分析程序崩溃的原因。coredump是系统记录进程崩溃时内存状态的文件,它可以帮助开发者定位问题所在。以下是对在Linux...

    Linux Debugging: coredump 分析的材料

    描述中提到的链接可能是一个博客文章,提供了具体案例来讲解`coredump`的分析方法。`unzip`和`tar xf`是两个常见的Linux命令,分别用于解压`.zip`和`.tar.gz`格式的压缩文件。在本例中,我们需要先使用`unzip`命令...

    《coredump问题原理探究》windows版.rar

    《coredump问题原理探究》Windows版的压缩包文件包含了关于Windows操作系统中程序崩溃时core dump问题的深入解析和处理方法。core dump,也称为核心转储,是在程序异常终止时,操作系统保存的进程内存状态的副本,这...

    linux core dump

    2. 如果程序调用了 `seteuid()`/`setegid()` 改变了进程的有效用户或组,则在默认情况下系统不会为这些进程生成 Coredump。 通过本节的介绍,我们可以了解到 Linux Core Dump 的配置和调试方法,从而更好地进行错误...

    coredump_article

    本文将深入探讨核心 dump 的概念、用途以及分析方法。 一、什么是核心 dump? 核心 dump 是操作系统在进程异常终止时,将进程在内存中的映像写入到磁盘文件的过程。它包含了进程的所有内存空间信息,如全局变量、...

    Unix环境下core dump 分析

    本篇将深入探讨Unix环境下core dump的分析方法。 首先,理解core dump的生成机制是至关重要的。当一个程序因为除零错误、非法内存访问或其他系统错误而崩溃时,如果系统配置允许,会生成一个core dump文件。生成...

    Linux下怎么产生core dump文件及GDB怎么调试core.pptx

    ### Linux下产生Core Dump文件及使用GDB调试详解 #### 一、Core文件的基本概念与作用 当一个程序因为某些原因而崩溃时,系统内核会自动创建一个名为`core`的文件,这个文件包含了程序崩溃时刻的内存映像以及其他...

    浅析Linux下利用coredump技术追查进程崩溃原因

    在Linux系统中,当进程异常终止时,...理解coredump的生成、配置以及使用gdb进行分析,是每个Linux开发者必备的技能之一。在遇到进程崩溃时,利用这些知识,可以迅速找出问题,减少故障排查的时间成本,提升开发效率。

    如何dump coredump to AT port

    为了解决这个问题,本文将详细介绍一种方法:通过修改源代码的方式将core dump信息输出到AT Port。 #### 技术原理与实现步骤 ##### 修改源代码 为了实现将core dump输出到AT Port,需要对系统的内核源码进行一定...

    gdb core分析方法

    "gdb core分析方法"是指利用gdb来解析和理解这些core dump文件,以诊断和修复程序中的错误。 首先,要启用core dump的生成,你需要在Linux系统中设置`ulimit -c unlimited`命令,这将允许系统生成不限大小的核心...

    关于linux下core dump【总结】

    Linux下的core dump是指当程序因异常终止或崩溃时,操作系统自动生成的一种文件,它记录了程序崩溃瞬间的内存状态和其他关键...理解core dump的工作原理和使用方法,对于提升Linux环境下的软件开发和维护能力至关重要。

    rapidjson解析json代码实例以及常见的json core dump问题

    在本文中,我们将深入探讨如何使用RapidJSON库解析JSON数据,并解决可能遇到的`core dump`问题。RapidJSON是一个轻量级、快速且易于使用的C++ JSON解析器和生成器,它提供了高效的内存管理和解析错误处理。 首先,...

    Linux下core文件调试方法.pdf

    Linux core 文件调试方法 Linux core 文件是一种特殊的文件,它记录了程序崩溃时的内存映象和调试信息。它主要用于调试目的,帮助开发者解决程序...使用 Core Dump,可以了解程序崩溃的原因,并进行调试和解决问题。

Global site tag (gtag.js) - Google Analytics