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

使用CORE DUMP

 
阅读更多
程序出现SIGSEGV ,Segmentation fault 等错误,没有提示所在的行位置,无法定位问题,这时就需要用到CORE DUMP文件。
在此CORE   不是核心的意思,而是只内存。
1.一般linux不会产生CORE DUMP文件,通过ulimit -c来查看core dump文件的大小,一般开始是0,可以设置core文件大小,ulimit -c 1024(kbytes单位)或者ulimit -c unlimited。
2.输出目录一般是当前目录,或者可以在/proc/sys/kernel中找到core-user-pid,通过

echo "1" > /proc/sys/kernel/core-user-pid使core文件名加上pid号,还可以用

mkdir -p /root/corefile

echo "/root/corefile/core-%e-%p-%t" > /proc/sys/kernel/core-pattern 控制core文件保存位置和文件名格式。

以下是参数列表:
    %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.用GDB查看

下面我们可以在发生运行时信号引起的错误时发生core dump了.编译时加上-g
发生core dump之后, 用gdb进行查看core文件的内容, 以定位文件中引发core dump的行.
gdb [exec file] [core file]
如:
gdb ./test test.core
在进入gdb后, 用bt命令查看backtrace以检查发生程序运行到哪里, 来定位core dump的文件行.

5. 给个例子

test.c

#include <stdio.h>

void a(){

   char *p = NULL;

   printf("%d/n", *p);

}

int main()

{

    a();

    return 0;

}

编译 gcc -g -o test test.c

运行 ./test

报segmentation fault(core dump)

gdb ./test test.core如果生成的是test.core.(我在UBUNTU上生成的的是CORE文件)

分享到:
评论

相关推荐

    如何使用coredump

    **如何使用coredump** 在Linux操作系统中,当一个程序异常崩溃时,系统默认可能会生成一个名为`core`的文件,这个文件称为core dump,也叫核心转储文件。它是程序运行时内存状态的一个快照,包含了程序的内存映像、...

    Coredump简介及使用

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

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

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

    coredump使用

    ### Coredump 使用详解 #### 一、Coredump 概述 在 Linux 系统中,当进程遇到无法处理的错误或异常时,系统可能会生成一个名为 coredump 的文件。这个文件实际上是对出现问题时刻进程内存的一个快照,包含了程序...

    linux coredump分析方法实例介绍

    2. 分析 Core Dump 文件:使用 GDB 调试器来分析 Core Dump 文件,了解系统崩溃的原因。 3. 加载符号表:使用 file 命令加载符号表,以便后续的分析。 4. 定位段错误:使用 where 命令来定位段错误的位置。 5. 分析...

    window COREdump文件生成 c++代码

    - 在C++代码中,我们可以使用`MiniDumpWriteDump`函数来生成Coredump文件。这个函数来自`dbghelp.dll`库,需要在项目中链接此库。 - 示例代码: ```cpp #include #include void ...

    Linux下生成core dump

    - **加载core dump文件**:首先,需要使用`gdb`加载core dump文件: ```sh gdb -c &lt;corefile&gt; ``` 其中`&lt;corefile&gt;`是core dump文件的路径,`&lt;executable&gt;`是导致core dump的程序的可执行文件路径。 - **查看...

    coredump文件的生成与解析.docx

    使用 `ulimit -a` 命令可以查看当前嵌入式 Linux 操作系统是否可以生成 coredump 文件,如果 coredump 对应的值为 0,则当前环境无法生成 coredump 文件。要开启当前嵌入式 Linux 操作系统生成 coredump 文件,可以...

    高通core dump解析工具

    在IT行业中,Core Dump是一种非常重要的调试手段,它记录了程序在崩溃时内存的状态,包括进程的寄存器信息、堆栈轨迹以及内存映射等。对于开发者来说,利用Core Dump进行问题排查能够帮助我们快速定位和修复软件中的...

    SegmentFault(coredump)调试方法.pdf

    通过理解如何获取gdb、生成未剥离的可执行文件、创建和使用core dump,以及在gdb中进行调试,开发者能够有效地定位和修复程序中的错误,提高软件的稳定性和可靠性。在实际开发中,结合源代码分析,这些技巧能够极大...

    coredump文件调试

    Core Dump 文件调试是指使用 GDB 调试 Core Dump 文件的过程。Core Dump 文件是操作系统执行的一个动作,当某个进程因为一些原因意外终止(crash)的时候,操作系统会将这个进程当时的内存信息转储(dump)到磁盘上...

    GDB之在线调试与Coredump分析

    2. 使用GDB加载Coredump文件。 3. 使用bt(backtrace)命令查看崩溃时的函数调用栈。 4. 使用list命令查看函数调用栈中指定函数的源码。 5. 查看变量和寄存器的值,了解崩溃时程序的状态。 Coredump分析的关键点...

    Accelerated Linux Core Dump Analysis

    Linux Core Dump 权威书籍

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

    2. 使用gdb加载:`gdb &lt;崩溃程序&gt; &lt;core dump文件&gt;`,进行调试。 3. 查看调用堆栈:`backtrace`命令列出崩溃时的函数调用序列。 4. 分析变量值:通过`print`或`p`命令查看关键变量的值。 5. 源码级分析:结合`addr2...

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

    - 使用以下命令设置新的 core dump 文件路径: ```bash echo '/path/to/new/directory/%t-%e-%p-%c.core' &gt; /proc/sys/kernel/core_pattern ``` 其中 `%t` 表示时间戳,`%e` 表示崩溃程序的名字,`%p` 表示...

    容器中生成coredump文件

    如何在让docker中运行的进程生成core dump文件

    Linux Debugging(五): coredump 分析入門1

    在Linux系统中,调试是解决程序异常和错误的关键步骤,特别是在遇到程序崩溃并产生coredump时。coredump是操作系统在程序异常终止时保存的内存映像,包含了程序运行时的状态,如内存布局、堆栈信息、全局变量和...

    Linux应用程序调试之debug_coredump

    本文将深入探讨如何利用core dump进行Linux应用程序的调试,特别关注使用gdb工具来解析core文件。 ### coredump的核心概念 #### 1. 何时产生core dump? 当进程接收到某些信号(如SIGSEGV)时,如果内核被配置为...

    Linux Debugging: coredump 分析入门的材料

    我们可以使用`gdb`(GNU调试器)来分析这个`coredump`。首先,确保`gdb`已经安装在你的Linux系统上,如果没有,可以通过包管理器(如`apt-get`或`yum`)进行安装。 接下来,我们需要`a.out`文件,这是编译后的可...

    AIX 下的 core dump 分析入门

    AIX 下的 core dump 分析入门.mht,html文档,请大家参考以下

Global site tag (gtag.js) - Google Analytics