背景
Electron 项目底层动态库与依赖动态库崩溃信息追溯困难,缺少追溯手段;经一段时间的挠头,在摸爬滚打中发现了在比较好用的LLDB、WinDbg 感谢C++小伙伴Rubber。
释义
动态库(动态链接库) 以 .dylib 或者 .framework 后缀结尾 与静态库相反,动态库在编译时并不会被拷贝到目标程序中,目标程序中只会存储指向动态库的引用。等到程序运行时,动态库才会被真正加载进来。
Mac追溯
- 运行项目
- 运行目录下执行(以开发模式为例)
// your`s App path
lldb Electron.app/Contents/MacOS/Electron
- 输入attch 线程(eg:10704)
// 你的Electron Host pid
attach -pid 10704
- 堆栈信息追溯
Window中追溯
- 工具:WinDbg
- 解压&环境变量配置
- 运行项目
- 找到主进程pid 【attch pid(eg:10704)】
5. 堆栈信息追溯