当前位置:
首页 >
C语言段错误-core文件
发布时间:2023/12/31
31
豆豆
生活随笔
收集整理的这篇文章主要介绍了
C语言段错误-core文件
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
目录
生成core文件
1. 添加生成core文件的准备
2. 修改配置文件
3. 重新执行一下,使能配置文件
core文件的解析
整体使用示例
1. 写一个最简单的段错误的文件(给空指针赋值)
2. 编译执行
3. gdb执行core文件
--end--
生成core文件
1. 添加生成core文件的准备
ulimit -SHc unlimited ulimit -u unlimited2. 修改配置文件
vi /etc/sysctl.conf kernel.core_pattern = /tmp/core-%e-%p# 在文件的最后 添加上面这条命令,这条命令,是默认的保存位置,当前设置的保存位置是 /tmp/目录下 # 文件名为 core-命令名-pid# 如果不添加这个,产生的core文件,默认 会在执行可执行文件时 所在的目录下,文件名为 core3. 重新执行一下,使能配置文件
sysctl -p /etc/sysctl.confcore文件的解析
gdb <产生当前段错误的可执行文件> <产生的core文件>
进入gdb调试工具后
输入 bt
打印出来的就是 产生 段错误(核心已转储)的对应位置,及原因
整体使用示例
1. 写一个最简单的段错误的文件(给空指针赋值)
#include <stdio.h>int test() {int *ptr = NULL;*ptr = 0; }int main() {test();return 0; }2. 编译执行
3. gdb执行core文件
3.1 core文件名称
-rw------- 1 root root 245760 Sep 4 12:38 core_a.out_212167
3.2 gdb执行(我把可执行文件拿过来了--这样看起来比较简洁)
gdb ./a.out core_a.out_212167
3.3 回车后具体显示如下
3.4 输出 bt 回车
根据 #0 能看出来 产生段错误的原因在 test() 函数中,所以可以直接去看一下 具体代码,分析产生的原因(或者添加打印一些调试信息)
--end--
总结
以上是生活随笔为你收集整理的C语言段错误-core文件的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 金格iweboffice2003,ie文
- 下一篇: 使用iWebOffice实现电子签章