Linux系统下程序出错时会自动生成一个core文件,该文件包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等。下面简单介绍coredump使用方法。
ulimit –c (查看core dump文件的大小,一般开始是0)
0 (表示coredump开关处于关闭状态)
- 输入如下命令修改core文件大小,单位kbytes
ulimit -c 1024 #最大1024kb
ulimit -c unlimited #取消大小限制
同时可以使用ulimit –a命令显示当前的各种用户进程限制
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 |
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进行调试
输入如下内容
#include <assert.h>
int main()
{assert(0);
return 0;}
- 将test.c的代码进行编译连接,生成并执行可执行文件test
7 |
###test : test.c : 4 : main: Assertion ‘0’ failed. |
1 |
gdb -c /media/test/core-test-3779-1345098973 |
分享到:
相关推荐
Linux Core Dump 分析方法实例介绍 本文将通过实例来介绍 Linux 中如何进行 Core Dump 分析,解决死机问题。 一、Core Dump 介绍 ...同时,我们也可以了解到 GDB 调试器的使用方法和 Core Dump 分析的步骤。
标题《Coredump简介及使用》和描述《Android Coredump简介及使用_v1.0_***.pdf》揭示了文档主要介绍Coredump的基本概念、产生的原因、控制产生Coredump的方法以及如何使用Coredump文件。Coredump机制广泛存在于多个...
### Ubuntu Linux 下程序崩溃生成 Core Dump 的方法 #### 一、Linux 下 Core Dump 文件 **Core Dump 文件** 是一种在程序崩溃时由操作系统自动生成的文件,它包含了程序崩溃时刻的内存快照以及相关的系统信息。这...
【SegmentFault(coredump)调试方法】 在编程和软件开发过程中,遇到程序崩溃或SegmentFault是一种常见的问题。这时,利用core dump进行调试可以帮助开发者找出问题的根源。core dump是操作系统在程序异常终止时生成...
本资料"coredump问题原理探究-Linux x86版"聚焦于Linux环境下,特别是x86架构下的核心转储文件分析,旨在帮助开发者深入理解core dump的工作机制,并提供有效的定位和解决问题的方法。 一、core dump的基本概念 1. ...
在Linux环境下,MySQL数据库的使用过程中,遇到故障或者异常情况时,我们可能需要利用coredump来分析程序崩溃的原因。coredump是系统记录进程崩溃时内存状态的文件,它可以帮助开发者定位问题所在。以下是对在Linux...
描述中提到的链接可能是一个博客文章,提供了具体案例来讲解`coredump`的分析方法。`unzip`和`tar xf`是两个常见的Linux命令,分别用于解压`.zip`和`.tar.gz`格式的压缩文件。在本例中,我们需要先使用`unzip`命令...
《coredump问题原理探究》Windows版的压缩包文件包含了关于Windows操作系统中程序崩溃时core dump问题的深入解析和处理方法。core dump,也称为核心转储,是在程序异常终止时,操作系统保存的进程内存状态的副本,这...
2. 如果程序调用了 `seteuid()`/`setegid()` 改变了进程的有效用户或组,则在默认情况下系统不会为这些进程生成 Coredump。 通过本节的介绍,我们可以了解到 Linux Core Dump 的配置和调试方法,从而更好地进行错误...
本文将深入探讨核心 dump 的概念、用途以及分析方法。 一、什么是核心 dump? 核心 dump 是操作系统在进程异常终止时,将进程在内存中的映像写入到磁盘文件的过程。它包含了进程的所有内存空间信息,如全局变量、...
本篇将深入探讨Unix环境下core dump的分析方法。 首先,理解core dump的生成机制是至关重要的。当一个程序因为除零错误、非法内存访问或其他系统错误而崩溃时,如果系统配置允许,会生成一个core dump文件。生成...
### Linux下产生Core Dump文件及使用GDB调试详解 #### 一、Core文件的基本概念与作用 当一个程序因为某些原因而崩溃时,系统内核会自动创建一个名为`core`的文件,这个文件包含了程序崩溃时刻的内存映像以及其他...
在Linux系统中,当进程异常终止时,...理解coredump的生成、配置以及使用gdb进行分析,是每个Linux开发者必备的技能之一。在遇到进程崩溃时,利用这些知识,可以迅速找出问题,减少故障排查的时间成本,提升开发效率。
为了解决这个问题,本文将详细介绍一种方法:通过修改源代码的方式将core dump信息输出到AT Port。 #### 技术原理与实现步骤 ##### 修改源代码 为了实现将core dump输出到AT Port,需要对系统的内核源码进行一定...
"gdb core分析方法"是指利用gdb来解析和理解这些core dump文件,以诊断和修复程序中的错误。 首先,要启用core dump的生成,你需要在Linux系统中设置`ulimit -c unlimited`命令,这将允许系统生成不限大小的核心...
Linux下的core dump是指当程序因异常终止或崩溃时,操作系统自动生成的一种文件,它记录了程序崩溃瞬间的内存状态和其他关键...理解core dump的工作原理和使用方法,对于提升Linux环境下的软件开发和维护能力至关重要。
在本文中,我们将深入探讨如何使用RapidJSON库解析JSON数据,并解决可能遇到的`core dump`问题。RapidJSON是一个轻量级、快速且易于使用的C++ JSON解析器和生成器,它提供了高效的内存管理和解析错误处理。 首先,...
Linux core 文件调试方法 Linux core 文件是一种特殊的文件,它记录了程序崩溃时的内存映象和调试信息。它主要用于调试目的,帮助开发者解决程序...使用 Core Dump,可以了解程序崩溃的原因,并进行调试和解决问题。