内容目录
背景
同事写electron软件,在特殊情况下会闪退,不是JS错误
思考
- 这种闪退崩溃,基本都是内存问题,基本都是调用系统API,不是简单的JS代码
- 鼠标切换程序特殊情况会崩溃,猜测是设置窗口有关系
解决方案
- 通过生成Dump 文件,看具体崩溃到哪个API
- 注释代码,对比排查
通过dump文件分析解决
- 在windbg 设置 electron pdb
- 在electron js 代码捕获程序异常推出,生成对应dump 文件
- 使用命令查看回调,大概就知道崩溃哪个API上
- 最后定义在获取窗口标题,给的内存大小太小了,当窗口标题超过255就崩溃了,同事直接抄AI代码,根本没有完全了解代码逻辑
资料
总结
- 开始直接windbg 分析,没有加载pdb导致定义不到对应的API,看不出来有什么问题,所以一定要下载PDB
- electron崩溃基本都是内存,因为JS很难导致崩溃,只有内存问题才容易出现