调试,是开发流程中一个非常重要的环节。每个程序员都应,具备调试代码的能力,尤其对于从事 Linux 下的开发的读者。
从事 linux 下后台开发,有时候会遇到程序突然崩溃的情况,也没有任何日志,这会让你不知所措。
今天给大家介绍一个 core 文件,用这个文件,我们可以找出对应出错的代码行,感觉是不是很神奇。
什么是core dump
对于程序,由于各种异常或者 bug,导致在运行过程中,并且在满足一定条件下,产生一个叫做 core 的文件。
通常情况下,core 文件会包含了,程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等。
许多程序出错的时候,会产生一个 core 文件。通过工具分析这个文件,我们可以定位到,程序异常退出的时候对应的堆栈调用等信息。
打开 core dump 开关:ulimit -c unlimited
看一段有问题的代码:
#include< stdio.h >
int main()
{
int *p=NULL;
*p=0;
printf("badn");
return 0;
}
linux下编译和执行:
[root@VM-16-9-centos c++]# g++ -g main.cpp
[root@VM-16-9-centos c++]# ./a.out
Segmentation fault (core dumped)
[root@VM-16-9-centos c++]# ls
a.out core.1989 main.cpp
上述代码一看就有错误,执行会产生 core dump。但是在大型项目中,用肉眼就很难看了。
-
Linux
+关注
关注
88文章
11628浏览量
217977 -
调试
+关注
关注
7文章
623浏览量
35383 -
文件
+关注
关注
1文章
587浏览量
25917 -
程序
+关注
关注
117文章
3836浏览量
84763
发布评论请先 登录
解析汽车抛负载Load Dump:load dump产生原因与TVS并联保护方案
ESP32_MINI烧录程序后遇到esp_core_dump_flash问题怎么解决?
多核ipc中断的使用,请问core1要发中断,如何触发?中断服务程序是放在哪个core的工程里面?
关于系统应用core dump的分析
sdk中编写的c程序是如何变成dump文件的?
你知道Linux Core Dump是什么?
学会用core dump调试程序错误
段错误调试神器 - Core Dump详解
华为在中国市场测试HMS Core,用于取代Google移动服务
linux中的core dump调试与运用详解
嵌入式Linux如何生成Core Dump文件

在程序中什么是core dump
评论