gdb获取调用栈的两种方式

方式一

在程序运行中出现异常,可以通过gdb以运行的方式调试程序,这里列出一个,

1、首先启动gdb

2、进入gdb执行页面后,输入file ./执行程序名称,这个命令将会将程序加载到内容中

3、输入r命令,运行程序

4、若程序崩溃,则输入bt命令查看调用栈

方式二

1、开启coredump开关,若没有打开coredump,首先要打开coredump开关命令,查询命令如下

consys@consys-Lenovo-Legion-Y7000:~$ ulimit -c

unlimited---这表示coredum开关已打开,并且coredump文件大小无限制

2、查看coredump文件的生成路径,通过如下的命令可以看到coredump文件生成的路径和名称

consys@consys-Lenovo-Legion-Y7000:~$ cat /proc/sys/kernel/core_pattern

/tmp/core-%p-%e-%t

其中%p的含义代表的是进程ID

%e的含义是应用程序名称(exexute)

%t的含义应该是时间

修改coredump文件的生成路径和格式,命令如下:

echo '/yourdir/core.%e-%p-%s' > /proc/sys/kernel/core_pattern

还有其它的一些格式,自己查询即可。

3、进入到coredump文件生成目录,然后执行如下命令

gdb /home/xxx/xxx/可执行程序名称 coredump文件名称

执行上面的命令后,输入bt命令,即可查看到崩溃时的调用栈。

相关推荐
落羽的落羽20 分钟前
【AI】快速理解AI应用的相关名词概念
linux·c++·人工智能·python·计算机网络·算法
刚入门的大一新生22 分钟前
Linux-进程控制
linux·运维·服务器·c++
上火的金鱼妹27 分钟前
K8S基础组件作用和关系整理
linux·运维·服务器·kubernetes
Vcaker38 分钟前
Linux学习25-harbor私有仓库部署
linux·运维·学习
刃神太酷啦42 分钟前
Redis 进阶核心:持久化 (RDB/AOF)、事务与主从复制全解析----《Hello Redis!》(5)
linux·c语言·数据库·c++·redis·缓存·bootstrap
编程的一拳超人1 小时前
DeepSeek Harness Linux/macOS/Windows 本地下载、启动与模型配置指南
linux·windows·macos·deepseek
时凌云.1 小时前
【2026最新】JDK 下载安装与环境配置全教程(Windows/Mac/Linux 三平台,零基础友好)
java·linux·macos
不懂的浪漫2 小时前
ToDesk 连接 Linux 后分辨率过低的解决方法
linux·运维·数据库
广州灵眸科技有限公司3 小时前
从手动三步到上电即连:4G模组systemd开机自连方案
linux·运维·服务器·开发语言·网络·人工智能·php
susplus4 小时前
【linux应用软件编程】数据库sqlite3
linux·数据库·sqlite