扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章将为大家详细讲解有关在Linux系统中如何使用gdb进行调试core文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
创新互联是一家专业提供左权企业网站建设,专注与成都网站设计、网站制作、H5建站、小程序制作等业务。10年已为左权众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。1.core文件
当程序运行过程中出现Segmentation fault (core dumped)错误时,程序停止运行,并产生core文件。core文件是程序运行状态的内存映象。使用gdb调试core文件,可以帮助我们快速定位程序出现段错误的位置。当然,可执行程序编译时应加上-g编译选项,生成调试信息。
当程序访问的内存超出了系统给定的内存空间,就会产生Segmentation fault (core dumped),因此,段错误产生的情况主要有:
(1)访问不存在的内存地址;
(2)访问系统保护的内存地址;
(3)数组访问越界等。
core dumped又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dumped。
core意指core memory,用线圈做的内存。如今 ,半导体工业澎勃发展,已经没有人用 core memory 了,不过,在许多情况下,人们还是把记忆体叫作 core 。
2.控制core文件是否生成
(1)使用ulimit -c命令可查看core文件的生成开关。若结果为0,则表示关闭了此功能,不会生成core文件。
(2)使用ulimit -c filesize命令,可以限制core文件的大小(filesize的单位为KB)。如果生成的信息超过此大小,将会被裁剪,最终生成一个不完整的core文件。在调试此core文 件的时候,gdb会提示错误。比如:ulimit -c 1024。
(3)使用ulimit -c unlimited,则表示core文件的大小不受限制。
在终端通过命令ulimit -c unlimited只是临时修改,重启后无效 ,要想永久修改有三种方式:
(1)在/etc/rc.local 中增加一行 ulimit -c unlimited
(2)在/etc/profile 中增加一行 ulimit -c unlimited
(3)在/etc/security/limits.conf最后增加如下两行记录:
@root soft core unlimited @root hard core unlimited
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流