Core Dump技术介绍
来源:互联网 发布:c语言的简单数据类型 编辑:程序博客网 时间:2024/04/29 11:11
在开发和使用Linux程序时,我们最怕的就是莫过于程序莫明其妙的当掉了,虽然对整个系统来说是没有什么影响,但对于程序使用尤其是程序开发者来说,这显然是难以忍受的,有这样一种技术,操作系统把程序当掉时的内容保存起来,让我们在程序开发时作一个调试参考。
1、什么是core dump?
Core,即core memory, 指由一系列小当纳圈形的磁性材料组成的存储器,这里不过是沿用了这一称呼,而dump就是堆放的意思。core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump.
2、如何打开core dump支持?
有的操作系统并没有默认打开core dump支持,需要用ulimit -c unlimited语句进行设置,core文件生成的位置一般在程序运行的当前目录下,文件名为core.进程号(当然不同的系统也许有所不同,可以查看相手册对路径和文件名进行设置).
3、Core dump的使用方法
首先应该在用gcc进行编译时选择-g选项,以便起动debug支持,生成可执行文件时ex,./ex运行可执行文件,如果程序当掉,则会生成一个core文件,假设为core.1568,则gdb ex core.1568进入gdb,然后再用where命令进行查看即可。
4、举例说明
假设我的代码main.c为:
#include <stdio.h>
int div(int i, int j)
...{
return i / j;
}
int main()
...{
int i = 2;
int j = 0;
printf("%d ", div(i, j));
return 0;
}
int div(int i, int j)
...{
return i / j;
}
int main()
...{
int i = 2;
int j = 0;
printf("%d ", div(i, j));
return 0;
}
5、其它-用kill命令查询信号的名称和值
有时候core dump显示的结果是一些信号的值,这时需要对这些值进行查询,这时要用到kill命令。
Kill –l :列出所有信号的名称和值
Kill –l val:查询值为val的信号名称
Kill –l signame: 查询signame信号的值。
本文总结了core dump技术的基本使用方法,并进行了举例,对于初学Linux程序开发者来说,多多少少会有点帮助。
- Core Dump技术介绍
- core dump介绍
- 调试技术: Linux core dump file
- 调试技术: Linux core dump file
- 调试技术: Linux core dump file
- Linux core dump的调试技术
- Linux core dump的调试技术
- Linux core dump的调试技术
- 调试技术: Linux core dump file
- 调试技术: Linux core dump file
- Linux core dump的调试技术
- 调试技术: Linux core dump file
- Linux core dump文件介绍及调试
- Core Dump
- Core Dump
- Core Dump?!
- Core Dump?!
- Core Dump?!
- 加班赶工,得不偿失——历史给你上六课
- 企业管理软件平台架构内幕揭秘
- Eclipse下使用jxl
- 通过SQL得到某年内每周的开始日期和结束日期
- SQLite的 cannot commit - no transaction is active报错
- Core Dump技术介绍
- MS SQL Server 2005 无法远程连接
- spring 和hibernate的整合
- SQLite内存数据库使用有感
- Java EE 5.0能取代Struts,Spring和Hibernate吗?
- Dive Into Python
- 如何才能成为信息顾问
- 我们为什么需要Java EE 5.0?
- 书讯 -- SQL Server 2005 Practical Troubleshooting The Database Engine