google_breakpad.001.jpeg

前置信息

本机(MacBook Pro)上 Electron 的路径:/usr/local/lib/node_modules/electron/dist/Electron.app/Contents/MacOS/Electron

本机 Electron 数据文件路径:/Users/bianchengsanmei/Library/Application Support/Electron

本地 dump_sysm 路径:/Users/bianchengsanmei/Library/Developer/Xcode/DerivedData/Breakpad-ebqwamwdejfpicartmwratdgdbnc/Build/Products/Release/dump_syms

minidumps_stackwalk 路径 /Users/bianchengsanmei/Public/CODE/google_breakpad/breakpad/src/processor/minidump_stackwalk

构建 google_breakpad

  1. 下载 google_breakpad 源码;
    1. git clone https://github.com/google/breakpad.git
  2. 编译 google_breakpad
    1. ./configure && make
  3. 安装构建的库
    1. make install

生成 Electron 崩溃日志

  1. // main.js
  2. import { app, crashReporter } from "electron";
  3. import * as path from "path";
  4. crashReporter.start({
  5. uploadToServer: false
  6. });
  7. app.setPath("crashDumps", process.cwd() + "/crash");

这样当渲染进程崩溃后,我们可在安装目录下的 crash 文件夹下找到一份 dump 文件,这就是崩溃日志文件。

需要注意,在 electron@7.1.4 中,是没有 crashDumps 路径的,统一存在 temp 路径下。

解析 dump 文件

直接打开查看 dump 文件,为 16 进制数据:

image.png
需要把该文件转换为可读、可分析的文件,使用工具为 google_breakpad 中的 minidumps_stackwalk:

  1. $ /Users/bianchengsanmei/Public/CODE/google_breakpad/breakpad/src/processor/minidump_stackwalk ./crash/test.dump > ./crash/test.info

打开查看 test.info:

image.png
其中最需要注意的是 Crash reason ,是导致崩溃的原因描述。

学习有趣的知识,结识有趣的朋友,塑造有趣的灵魂!

大家好,我是〖编程三昧〗的作者 隐逸王,我的公众号是『编程三昧』,欢迎关注,希望大家多多指教!

你来,怀揣期望,我有墨香相迎! 你归,无论得失,唯以余韵相赠!

知识与技能并重,内力和外功兼修,理论和实践两手都要抓、两手都要硬!

更多相关文章

  1. android 内部文件读取
  2. android 安全讲座第四层 手机Root授权原理细节全解析(3)
  3. findlibrary returned null产生的联想,Android(安卓)ndk开发打包
  4. Android工程的编译过程
  5. Android(安卓)应用开发笔记 - Android的系统构架
  6. Android(安卓)So简单加固
  7. Android覆盖升级以及apk签名
  8. Android中图片实现按钮点击效果
  9. 在Android中调用WebService

随机推荐

  1. 如何开启phpstudy中的gd库
  2. php中如何使用websocket(聊天室实例详解)
  3. php中如何在数组指定位置插入数据单元
  4. ubuntu多版本php切换
  5. html是如何与php进行数据交互的
  6. 在树莓派上搭建LNMP环境
  7. PHP 如何上传文件和下载
  8. Asf PHP开发之配置信息常驻系统内存
  9. 用PHP实现一个简易版文件上传功能(超详细
  10. php中如何响应button的onclick事件