linux中使用gdb调试c++的dump文件

1 查看系统是否开启dump生成 0表示没开启

复制代码
ulimit -c   

但是这个只是针对当前这个连接,如果想要永久修改可以修改配置文件:
vim /etc/profile,然后添加上面的命令ulimit - c unlimited.然后执行source /etc/profile或者重启使刚刚的配置可以生效。

2查看dump生成的文件位置

复制代码
cat /proc/sys/kernel/core_pattern

3 将dump文件和可执行文件放在一起

复制代码
gdb -c ./core.dead_lock  ./dead_lock

4进入gdb

bt 查看调用栈信息:info threads 当前有多少个线程 ; thread 2 切换到线程2上

这时我们进入线程2 thread 2 然后执行 bt查看调用栈 再使用f num 查看调用栈 使用p mtx1查看锁信息或者p *this

上面owner=30741表示这个锁被谁占用,0表示没有被线程抢占可以使用info threads查看所有线程id然后对比这个锁被哪个线程持有。

锁就是系统的标志量,只有一个线程可以占用锁资源并把锁的owen设置成线程的id。

使用gdb调试容易定位问题。

相关推荐
煜声远播3 分钟前
相册卡顿的系统级排查复盘:fsync 不要在锁里调用
linux
syagain_zsx15 分钟前
Linux进程全面解析:从基础到高级管理(2/3)
linux·运维·服务器
洛水水15 分钟前
图床项目实现:MD5秒传 + 个人文件列表 + 图片分享等功能的完善
服务器·网络
Irissgwe25 分钟前
8-1\IP 分片和组装的具体过程
linux·网络·tcp/ip·网络层·分片·组装
Zevalin爱灰灰33 分钟前
makefile从入门到实战 第一章 认识makefile(一)
linux·makefile
爱吃泡芙的小白白34 分钟前
无人机机巢:低空经济的自动化基石,一文读懂其原理、应用与未来
运维·自动化·无人机·低空经济
翼龙云_cloud35 分钟前
阿里云代理商:轻量服务器建站常见问题及解决方案汇总
运维·阿里云·云计算
唔6637 分钟前
(一)一套完整的自动化脚本,一键搭建5节点负载均衡集群
运维·自动化·负载均衡
闪电悠米38 分钟前
黑马点评-秒杀优化-04_lua_and_db_fallback
服务器·开发语言·网络·数据库·缓存·junit·lua
豆瓣鸡42 分钟前
Docker快速入门
运维·docker·容器