core dump
来源:互联网 发布:alt 左键 ubuntu 编辑:程序博客网 时间:2024/06/08 03:06
有的程序可以通过编译,但在运行时会出现segmentatin fault(即段错误)。这通常是指针错误引起的,但这不像编译错误一样可以在编译的时候定位到行,而是没有任何信息,使得调试程序变得困难。
这时我们可以通过gdb来调试,但如果程序很大的话,通过gdb一步步寻找显然不合适。因此,我们可以使用core dump。
要想让系统在信号中断造成的错误时产生core文件,我们需要系统中进行设置。首先需设置core大小为无限,ulimit -c unlimited。其次可通过echo "core" > /proc/sys/kernel/core_pattern 设置core文件生成的目录和文件名。此处我们设置为当前目录下,文件名为core。
之后我们使用如下c程序:
如图所示,编译运行后,就会提示已经生成了core dump文件。同时,在当前目录下,会生成一个名为core的文件。
之后,通过gdb的bt命令,就可看到程序在哪里发生了中断,如图所示(gdb调试core文件使用方式为 gdb 可执行文件 core文件):
从图中可看出,中断发生在main()函数中的printf()函数。当然,printf函数的底层还调用了vfprintf()函数。
另外,之前一直以为core是linux kernel的意思。最近才发现,core是另一种意思。
在使用半导体作为内存的材料前,人类是利用线圈当做内存的材料的,线圈叫做core,用线圈做的内存就叫做core memory。如今,半导体工业蓬勃发展,已经没有人用core memory了,不过,在许多情况下,人们还是把记忆体叫做core。
- Core Dump
- Core Dump
- Core Dump?!
- Core Dump?!
- Core Dump?!
- core dump
- core dump
- Core Dump
- core dump
- Core dump
- core dump
- Core Dump
- core dump
- core dump
- Core Dump
- core dump
- Core Dump
- core dump
- fstream用法(转)
- 解决mySQL占用内存超大问题
- Android多任务下载,使用Notification显示、更新进度条
- Unbuntu常用的进程管理命令
- Tour in the Castle zoj3256
- core dump
- android实习程序 ——短信
- 【Android小范例教程】【1】查找程序根目录下的文件
- time_wait和close_wait(面试时被问到)
- 用GDB调试程序(三)
- Sencha Touch中使用标准LocalStorage
- UILocalNotification之soundName
- Poj 3321 Apple Tree(树变序列+时间戳+树状数组)
- 用GDB调试程序(四)