惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
Recent Announcements
Recent Announcements
L
LangChain Blog
B
Blog
阮一峰的网络日志
阮一峰的网络日志
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
M
MIT News - Artificial intelligence
D
Docker
WordPress大学
WordPress大学
J
Java Code Geeks
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The GitHub Blog
The GitHub Blog
博客园 - 叶小钗
Last Week in AI
Last Week in AI
Stack Overflow Blog
Stack Overflow Blog
有赞技术团队
有赞技术团队
MyScale Blog
MyScale Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MongoDB | Blog
MongoDB | Blog
博客园 - Franky

博客园 - 寒魔影

Linux waitpid函数分析 不同进程内相同的变量内存地址是相同的 Linux 内存虚拟地址介绍 Sword B树学习笔记二 Sword B树学习笔记一 defined but not used警告屏蔽 apisix流量高峰期服务卡住问题 服务卡死现象分析实录 服务资源加载延迟异常增加 Linux 常用命令四 TCP全连接队列 调用writev收到信号SIGPIPE问题分析记录 epoll_wait监听事件延迟问题记录 writev发送数据失败 C++ new关键字运算符重载 宏定义导致数据异常问题 服务压测偶现卡住问题分析 C语言 数据类型 Linux 终端光标控制函数
Missing separate debuginfos类型崩溃分析
寒魔影 · 2024-06-18 · via 博客园 - 寒魔影

背景说明

今天遇到一个偶现崩溃,因为复现概率非常低,并且出现的时候没有收集coredump信息,因此没有去定位,今天复现了两次,终于被我拿到完整的堆栈信息,堆栈信息如下

分析过程

1.打开堆栈日志,发现0号位置没有具体的函数信息,只能先看1号位置的堆栈信息,通过打印变量,发现都很正常;

2.尝试能否打印出来0号堆栈的信息,尝试安装debuginfo-install,发现安装不了;

3.非常迷茫,没有办法继续定位

4.开始怀疑logger->handler这个属性有问题,我知道logger->handler这是一个函数指针,打印gtc_stderr_logger函数指针,发现跟logger->handler不同。

5.继续打印logger对象,这个对象也比较奇怪,level=1990817720不是一个正常的值,难道这个对象已经被破坏了?

6.gdb调试程序,发现启动的时候logger->handler的值就是gtc_stderr_logger函数指针

7.确认问题,logger对象是野指针。(破坏的原因是我是多线程程序,logger对象在子线程被释放了,主线程继续使用时就出现崩溃)

总结

如果再次遇到堆栈中出现??,可以先从有效信息开始分析,基本上就是有效信息那边出现问题了,后面分析崩溃堆栈,需要仔细,每个变量都要仔细检查一下,

这次分析这么久,是因为自己观察不细致导致的,因此写下该篇博客,来告诫自己分析问题需要仔细认真。