c编译段错误 (core dumped) gdb调试

说明环境

ubuntu 18.04


一、开启 生成coredump文件

ulimit -c unlimited

二、创建存储 coredump 文件地方

cd ~
mkdir coredump_files
echo '/home/${USER}/coredump_files/%t-%e-%p-%c.core' > /proc/sys/kernel/core_pattern

将更改core文件生成路径,自动放在这个/home/${USER}/coredump_files文件夹里。

%p - insert pid into filename 添加pid
%u - insert current uid into filename 添加当前uid
%g - insert current gid into filename 添加当前gid
%s - insert signal that caused the coredump into the filename 添加导致产生core的信号
%t - insert UNIX time that the coredump occurred into filename 添加core文件生成时的unix时间
%h - insert hostname where the coredump happened into filename 添加主机名
%e - insert coredumping executable name into filename 添加程序名


三、提示权限不够:

1.用 sudu 提示权限不够

sudo echo '/home/${USER}/coredump_files/%t-%e-%p-%c.core' > /proc/sys/kernel/core_pattern

2.进入 root 用户执行下面两条命令

su
echo '/home/${USER}/coredump_files/%t-%e-%p-%c.core' > /proc/sys/kernel/core_pattern

3.如果不行,执行下面命令修改root密码(修改过略过此命令)

su passwd

输入要设置的密码。
设置好密码重新执行第2步。


四、将执行编译时 stage1flex 二进制文件,复制到 coredump_files 文件夹里,

方便使用(指定二进制绝对路径也可以)下面是make 编译 flex-2.6.4 时报错.

./stage1flex -o stage1scan.c ./scan.l
Makefile:1696: recipe for target 'stage1scan.c' failed
make[2]: *** [stage1scan.c] 段错误 (core dumped)
make[2]: 离开目录“/home/qt/byd-nidps-3lib/flex-2.6.4/src”
Makefile:546: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: 离开目录“/home/qt/byd-nidps-3lib/flex-2.6.4/src”
Makefile:533: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

五、使用命令调试:

cd /home/${USER}/coredump_files/
gdb -c 1698303384-stage1flex-27879-18446744073709551615.core stage1flex
bt

输入bt 后可以看到绿色箭头处,提示源码 main.c文件第 976 行出问题
image

1698303384-stage1flex-27879-18446744073709551615.core 文件要改成你实际文件


之后就可以去修改源码中的问题了




免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。




参考、来源:
https://blog.csdn.net/weixin_40877924/article/details/108762118
https://blog.csdn.net/qq_43740943/article/details/105476108



posted @   悟透  阅读(61)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示