红联Linux门户
Linux帮助

Ubuntu打开core dump

发布时间:2016-07-28 10:24:09来源:linux网站作者:rldts
输入ulimit -a
如果core file size为0,那就说明没有打开core dump,尽管你的程序crash的时候会显示core dumped,但实际上不会生成core file
输入ulimit -c 1024即可,其中1024是生成的core file的最大大小。这个值可以根据实际情况调整。
 
参考:Linux/ubuntu下core文件的产生与使用
一.相关知识
1)何为core文件?
核心文件(core file),也称核心转储(core dump),是操作系统在进程收到某些信号而终止运行时,将此时进程地址空间的内容以及有关进程状态的其他信息写出的一个磁盘文件。这种信息往往用于调试。
A core dump is the recorded state of the working memory of a computer program at a specific time, generally when the program has terminated abnormally (crashed). In practice, other key pieces of program state are usually dumped at the same time, including the processor registers, which may include the program counter and stack pointer, memory management information, and other processor and operating system flags and information. The name comes from the once-standard memory technology core memory. Core dumps are often used to diagnose or debug errors in computer programs.
On many operating systems, a fatal error in a program automatically triggers a core dump, and by extension the phrase "to dump core" has come to mean, in many cases, any fatal error, regardless of whether a record of the program memory is created.[摘自维基百科]    
 
二.示例 ubuntu下core文件的产生
1)查看相关环境,如下图中
Ubuntu打开core dump
注:core file size 为 0,core file产生还没打开
2)写一个简单的存在问题的c++程序并运行
Ubuntu打开core dump
注:运行出错,提示段错误(访问空指针),由于没有打开core文件的开关,故没有产生core文件的信息
3)打开core文件产生的”开关“
Ubuntu打开core dump
注:设置core file size来开否core文件的产生,这里的1024是喜好值,可以根据实值情况调整
4)运生程序出错并生成core文件
Ubuntu打开core dump
注:默认在当前工作目录产生core文件,而文件名为core
[更改core文件产生的格式]
Ubuntu打开core dump
注:修改/proc/sys/kernel/core_pattern的内容为core-%p-%e-%t,原来的内容为core
5)使用gdb调试core文件
Ubuntu打开core dump
 
本文永久更新地址:http://www.linuxdiyf.com/linux/22779.html