前置信息
本機(jī)(MacBook Pro)上 Electron 的路徑:/usr/local/lib/node_modules/electron/dist/Electron.app/Contents/MacOS/Electron
本機(jī) Electron 數(shù)據(jù)文件路徑:/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
構(gòu)建 google_breakpad
- 下載
google_breakpad
源碼;git clone https://github.com/google/breakpad.git
- 編譯 google_breakpad
./configure && make
- 安裝構(gòu)建的庫(kù)
make install
生成 Electron 崩潰日志
// main.js
import { app, crashReporter } from "electron";
import * as path from "path";
crashReporter.start({
uploadToServer: false
});
app.setPath("crashDumps", process.cwd() + "/crash");
這樣當(dāng)渲染進(jìn)程崩潰后朗若,我們可在安裝目錄下的 crash
文件夾下找到一份 dump 文件瞪慧,這就是崩潰日志文件疗涉。
需要注意,在 electron@7.1.4
中并淋,是沒(méi)有 crashDumps 路徑的,統(tǒng)一存在 temp 路徑下。
解析 dump 文件
直接打開(kāi)查看 dump 文件欺抗,為 16 進(jìn)制數(shù)據(jù):
需要把該文件轉(zhuǎn)換為可讀、可分析的文件强重,使用工具為 google_breakpad 中的 minidumps_stackwalk:
$ /Users/bianchengsanmei/Public/CODE/google_breakpad/breakpad/src/processor/minidump_stackwalk ./crash/test.dump > ./crash/test.info
打開(kāi)查看 test.info:
其中最需要注意的是 Crash reason
,是導(dǎo)致崩潰的原因描述绞呈。
學(xué)習(xí)有趣的知識(shí),結(jié)識(shí)有趣的朋友间景,塑造有趣的靈魂佃声!
大家好,我是〖編程三昧〗的作者 隱逸王倘要,我的公眾號(hào)是『編程三昧』圾亏,歡迎關(guān)注,希望大家多多指教封拧!
你來(lái)志鹃,懷揣期望,我有墨香相迎泽西! 你歸曹铃,無(wú)論得失,唯以余韻相贈(zèng)捧杉!
知識(shí)與技能并重陕见,內(nèi)力和外功兼修,理論和實(shí)踐兩手都要抓味抖、兩手都要硬淳玩!