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命令,即可查看到崩溃时的调用栈。

相关推荐
一个平凡而乐于分享的小比特几秒前
Linux根文件系统各文件夹作用详解
linux
hmywillstronger4 分钟前
【Rhino】【Python】对包含特定关键词的文字的MTEXT对象添加指定内容
linux·服务器·python
ICT董老师5 分钟前
通过OpenSSL 生成自签名证书
linux·运维·服务器·https·ssl
egoist20239 分钟前
[linux仓库]线程池(单例模式)、线程安全与重入、死锁[线程·拾]
linux·单例模式·饿汉模式·懒汉模式·线程安全·死锁·重入问题
EverydayJoy^v^14 分钟前
RH134简单知识点——第8章——管理存储堆栈
linux·运维·5g
板面华仔18 分钟前
Linux基础(下)——工作中常用命令总结
linux·运维·服务器
刃神太酷啦19 分钟前
Linux 基础 IO 收官:库的构建与使用、进程地址空间及核心知识点全解----《Hello Linux!》(11)
java·linux·c语言·数据库·c++·算法·php
RisunJan20 分钟前
Linux命令-let(执行算术运算)
linux·服务器
开开心心就好30 分钟前
视频伪装软件,.vsec格式批量伪装播放专用
java·linux·开发语言·网络·python·电脑·php
济61740 分钟前
linux 系统移植(第十九期)---- BusyBox 构建根文件系统---- Ubuntu20.04
linux·运维·服务器