稳定crash问题
野指针: asan
- hwasan, asan 进行分析
abort: hook + trace
- 重载,cxa_throw, cxa_rethrow 之类的函数。
- 静态链接重复定义问题:删除符号所在 .o , 查看依赖符号,重载即可。
全局变量(全局或static)
析构crash
- 获取符号对应
this
指针的值,并通过dladdr
获取地址。然后通过readelf
获取地址对应符号,c++filt
解析符号即可。 - 有符号库可以直接
addr2line
进行解析
偶现问题
通常生命周期问题: asan
- 多线程问题:暂时是asan 解析
多线程异常执行问题
- 串行再并行:加大lock,到 atomic,到无锁。
线程堆栈获取
- 注册新号,实现
trace
函数。 - 向指定异常线程发送信号,得到
trace
,然后分析结果。