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

Linux core dump的详细介绍及使用

    博客分类:
  • c++
 
阅读更多

http://linux.cn/thread/3377/1/1/

 

我们在开发(或使用)一个程序时,最怕的就是程序莫明其妙地当掉。虽然系 统没事,但我们下次仍可能遇到相同的问题。于是这时操作系统就会把程序当掉 时的内存内容 dump 出来,让我们或是debugger 做为参考。这个动作就叫作 core dump。
1.何谓 core?
在使用半导体作为内存的材料前,人类是利用线圈当作内存的材料(发明 者为王安),线圈就叫作 core ,用线圈做的内存就叫作 core memory。如今 ,半导体工业澎勃发展,已经没有人用 core memory 了,不过,在许多情况下, 人们还是把记忆体叫作 core 。
2.何谓 Linux core dump?
我们在开发(或使用)一个程序时,最怕的就是程序莫明其妙地当掉。虽然系 统没事,但我们下次仍可能遇到相同的问题。于是这时操作系统就会把程序当掉 时的内存内容 dump 出来(现在通常是写在一个叫 core 的 file 里面),让 我们或是debugger 做为参考。这个动作就叫作 Linux core dump。
3.为何会发生 Linux core dump?
前面说过,在程序当掉时出错。在 C/C++语言中,最常发生错误的地方就是指 针有问题。您可以利用 core 文件和 debugger 把错误找出来(要怎麽在 debugger 中使用 core 文件?man 一下gdb 吧!)。
4.我可以把 core 文件删掉吗?
如果你不会、不能、不需要修改程序,那就放心地把它删除了吧!要怎麽才不会让 core 文件出现?如果用的是tcsh的话, 以试著在 .tcshrc 里加一行:limit coredumpsize 0
如果用的是bash的话, 在/etc/profile里加上(或者修改)一条:ulimit -c 0
5.有一招, 可以让你看出 core 最好用的地方 
gdb -c core进去后打 where, 就可以 show 出你是在程序哪一行当掉的,还有在当掉时在哪个 function 里, 这个 function是被哪个function 所 call 的, 而这个 function 又是被哪个function所 call 的.... 一直到 main()由这个信息, 可以找出五六成的 bug........ 屡试不爽但, 先决条件, 当你在 compile 时必须把 debug information的选项打开 不然, 就会出现一大堆你看不懂的东西,而不是你喜欢的源程序。
  
  我们在开发(或使用)一个程序时,最怕的就是程序莫明其妙地当掉。虽然系 统没事,但我们下次仍可能遇到相同的问题。于是这时操作系统就会把程序当掉 时的内存内容 dump 出来,让我们或是debugger 做为参考。这个动作就叫作 core dump。
1.何谓 core?

  在使用半导体作为内存的材料前,人类是利用线圈当作内存的材料(发明 者为王安),线圈就叫作 core ,用线圈做的内存就叫作 core memory。如今 ,半导体工业澎勃发展,已经没有人用 core memory 了,不过,在许多情况下, 人们还是把记忆体叫作 core 。
2.何谓 Linux core dump?

  我们在开发(或使用)一个程序时,最怕的就是程序莫明其妙地当掉。虽然系 统没事,但我们下次仍可能遇到相同的问题。于是这时操作系统就会把程序当掉 时的内存内容 dump 出来(现在通常是写在一个叫 core 的 file 里面),让 我们或是debugger 做为参考。这个动作就叫作 Linux core dump。
3.为何会发生 Linux core dump?

  前面说过,在程序当掉时出错。在 C/C++语言中,最常发生错误的地方就是指 针有问题。您可以利用 core 文件和 debugger 把错误找出来(要怎麽在 debugger 中使用 core 文件?man 一下gdb 吧!)。
4.我可以把 core 文件删掉吗?

  如果你不会、不能、不需要修改程序,那就放心地把它删除了吧!要怎麽才不会让 core 文件出现?如果用的是tcsh的话, 以试著在 .tcshrc 里加一行:limit coredumpsize 0如果用的是bash的话, 在/etc/profile里加上(或者修改)一条:ulimit -c 0
5.有一招, 可以让你看出 core 最好用的地方

  gdb -c core进去后打 where, 就可以 show 出你是在程序哪一行当掉的,还有在当掉时在哪个 function 里, 这个 function是被哪个function 所 call 的, 而这个 function 又是被哪个function所 call 的.... 一直到 main()由这个信息, 可以找出五六成的 bug........ 屡试不爽但, 先决条件, 当你在 compile 时必须把 debug information的选项打开 不然, 就会出现一大堆你看不懂的东西,而不是你喜欢的源程序。
<!--EndFragment-->
分享到:
评论

相关推荐

    linux coredump分析方法实例介绍

    Linux Core Dump 分析方法实例介绍 本文将通过实例来介绍 Linux 中如何进行 Core Dump 分析,解决死机问题。 一、Core Dump 介绍 Core Dump 是 Linux 系统中一种特殊的文件,它记录了系统崩溃或死机时的系统状态...

    Accelerated Linux Core Dump Analysis

    Linux Core Dump 权威书籍

    Linux下生成core dump

    在本文档中,我们将详细探讨如何在Red Hat Linux系统中生成core dump,并通过调整系统配置来确保core dump文件的生成。 #### 二、Core Dump的生成与配置 ##### 1. 修改系统默认配置 - **/etc/profile**中的配置:...

    coredump文件的生成与解析.docx

    本文将详细介绍 coredump 文件的生成和解析过程,涵盖了 coredump 文件生成环境的设置、交叉编译执行文件、coredump 文件的生成、PC 端的 arm-gdb 解析等方面。 一、coredump 文件生成环境的设置 在 Linux 操作...

    Coredump简介及使用

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

    linux core dump

    本节将详细介绍 Linux Core Dump 的配置和调试方法。 一、 Core 文件的生成开关和大小限制 Linux 系统提供了一个命令 `ulimit -c` 来查看 Core 文件的生成开关。如果结果为 0,则表示关闭了 Core 文件的生成功能。...

    Linux应用程序调试之debug_coredump

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

    Linux Debugging: coredump 分析入门的材料

    `coredump`是Linux系统中一种非常有用的故障排查工具,它记录了进程崩溃时的内存快照,可以帮助开发者分析程序错误的原因。本篇文章将围绕`coredump`分析进行入门讲解,结合实例深入探讨如何利用`coredump`来解决...

    Accelerated Linux Core Dump Analysis Training Course

    根据给定文件信息,我们可以生成以下与“Accelerated Linux Core Dump Analysis Training Course”相关的知识点: Linux应用程序调试技术是该培训课程的核心主题。课程内容专注于如何通过核心转储(core dump)分析...

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

    在Linux系统中,当应用程序因某种异常而崩溃时,系统可能会生成一个名为"core dump"的文件,这个文件记录了程序崩溃时的内存状态、进程信息以及调用堆栈等重要数据,对于开发者来说,是排查问题的重要工具。...

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

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

    Linux Debugging: coredump 分析的材料

    总之,理解和熟练使用`coredump`分析是Linux开发者和系统管理员必备的技能之一,它能帮助我们快速定位和修复程序中的错误,提高软件质量。通过下载并分析`example_coredump.tar.gz`中的示例,读者可以更直观地学习这...

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

    以下是对在Linux下使用MySQL数据库时,如何正确处理coredump的几个关键点的详细解释: 一、确保coredump目录的可用性和权限 首先,coredump文件会被保存到进程的当前工作目录下。当你启动MySQL服务时,如果通过...

    window COREdump文件生成 c++代码

    本篇将详细介绍如何在C++代码中实现Windows系统的Coredump文件生成。 1. **理解Coredump** - Coredump是操作系统在程序异常终止时生成的一种文件,包含程序运行时的内存状态。 - 在Linux系统中,Coredump默认是...

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

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

    linux coredump相关设置说明

    linux coredump相关设置说明

    劫持Linux系统调用封杀Core Dump漏洞攻击.pdf

    Linux 系统调用 Core Dump 漏洞攻击防御策略 Linux 操作系统是当今最流行的操作系统之一,然而,Linux 系统调用 Core Dump 漏洞攻击的出现却给系统安全带来了巨大的威胁。 Core Dump 漏洞是 Linux 内核 2.6.15-...

    coredump使用

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

    coredump文件调试

    Core Dump 文件的产生是由于进程收到某个信号的时候,Linux 上现在大概有 60 多个信号,可以使用 kill -l 命令全部列出来。常见的信号包括 SIGSEGV、SIGILL、SIGFPE、SIGBUS 等。这些信号通常是由于数组越界、空指针...

Global site tag (gtag.js) - Google Analytics