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

相关推荐
冰橙子id23 分钟前
linux系统安全
linux·安全·系统安全
stark张宇27 分钟前
VMware 虚拟机装 Linux Centos 7.9 保姆级教程(附资源包)
linux·后端
Johny_Zhao34 分钟前
Ubuntu系统安装部署Pandawiki智能知识库
linux·mysql·网络安全·信息安全·云计算·shell·yum源·系统运维·itsm·pandawiki
悲伤小伞1 小时前
linux_git的使用
linux·c语言·c++·git
眠修3 小时前
Kuberrnetes 服务发布
linux·运维·服务器
即将头秃的程序媛5 小时前
centos 7.9安装tomcat,并实现开机自启
linux·运维·centos
fangeqin6 小时前
ubuntu源码安装python3.13遇到Could not build the ssl module!解决方法
linux·python·ubuntu·openssl
爱奥尼欧7 小时前
【Linux 系统】基础IO——Linux中对文件的理解
linux·服务器·microsoft
超喜欢下雨天7 小时前
服务器安装 ros2时遇到底层库依赖冲突的问题
linux·运维·服务器·ros2
tan77º8 小时前
【Linux网络编程】网络基础
linux·服务器·网络