全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

在程序中什么是core dump

时间:2023-10-08 16:07

人气:

作者:admin

标签: 调试  Linux  文件  程序 

导读:调试,是开发流程中一个非常重要的环节。每个程序员都应,具备调试代码的能力,尤其对于从事 Linux 下的开发的读者。 从事 linux 下后台开发,有时候会遇到程序突然崩溃的情况,也...

调试,是开发流程中一个非常重要的环节。每个程序员都应,具备调试代码的能力,尤其对于从事 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。但是在大型项目中,用肉眼就很难看了。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信