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 Core Dump 权威书籍
通过实例来分析linux中如何定位coredump问题。非常实用
Linux下如何生成core dump
Linux应用程序调试之debug_coredump
Linux下怎么产生core dump文件及GDB怎么调试core.pptx Linux下怎么产生core dump文件及GDB怎么调试core.pptx
linux coredump相关设置说明
The book focus on Linux Application debugging techniques, help to troubleshoot linux applications.
本文模拟了除零错误发生时,嵌入式arm Linux平台生成的core文件,并在PC端采用arm-gdb解析该core文件,从中可以看出程序崩溃时的函数调用。
本文是http://blog.csdn.net/anzhsoft/article/details/18762915用到的例子。
要保证存放coredump的目录存在且进程对该目录有写权限。存放coredump的目录即进程的当前目录,一般就是当初发出命令启动该进程时所在的目录。但如果是通过脚本启动,则脚本可能会修改当前目录,这时进程真正 的当前...
請下載本文用到的coredump: Linux Debugging: coredump 分析入門的材料Program received signal SIGSE
劫持Linux系统调用封杀Core Dump漏洞攻击.pdf
asdfsfsdfsdfsfsdfsdfsdfsfasdf
Linux core dump pattern and practice
本文是http://blog.csdn.net/anzhsoft/article/details/18762915用到的例子。下载后先unzip,在tar xf
coredump可以参考:coredump的介绍及产生的几种可能情况 gcc选项 -g:在可执行文件中加入源码信息,比如:可执行文件中第几条机器指令对应源代码的第几行,但并不是把整个源文件都嵌入到可执行文件中,而是在调试时...
讲述常用gdb命令,以及讲述如何使用gdb调试程序崩溃后产生的core dump文件,让您在linux下开发更轻松
1、前言 一直在从事linux下后台开发,经常与core文件打交道。还记得刚开始从事linux下开发时,程序突然崩溃...今天在ngnix的源码时候,发现可以在程序中设置core dump,又是怎么回事呢?在公司发现生成的core文件都带
增强版 linux版本 core崩溃的定位流程,定位方法积累与总结,适合定位程序时使用,同时能增加自身功力,了解多了,多多益善。