背景
在Android开发过程中,经常会用到Webview来加载H5内容。偶尔就会出现一些崩溃,崩溃信息中会出现crashpad相关的日志,需要用 minidump_stackwalk 来进行解析
1 2
| 05-30 11:09:32.950 14200 14200 F crashpad: -----BEGIN CRASHPAD MINIDUMP----- 05-30 11:09:32.950 14200 14200 F crashpad: )iyJD'cB?s16Rlq9!?S8\@]-!]ZyG@f>*=m,WE&-Z9;9yRMGn@J[-[EY}Hr[KSd<xQJ[)^GZx[y&RS3_?lww|3&Dw]ts!V|X6ERLFjcKBu5LR2vl)gzFcK<UlkUr35XA7,(-sX;MTIgE^tluFZ]_DcEwEm{/%r(QU*{GicVW|Z*N?f"N)P4m*1}Mqh,AquFwni3Lgg')#)&`xsXp4q>-RhQN1VkW$fLSzv\0!Nk@NK}KQ]k:SwgeEwmR2<8$?^p.`[email protected]<I<ygMWwm5q,ncV"B5DD}ke2;K<1hYm~@2lb%X|owx.AGuAKHVM9P\AhN!|;M]zQo?a.7PbB=$ikQ|E[;:FKOOX7oyV`a@f2;7`5Sc0u-QPP]]K"Ejg(dbrn7^e|RGXJmm@(r@9,^f1IGt6nomuU?\u,3&x'cZ[wooINH&4U@Wnp7/`,gBb7o+E{r`r.rC,#Oq`e&N<4Ul=pHYJh9`;IPebn)o{d8#i~0%t2d(H<`M[y|
|
步骤
1. 准备 minidump_stackwalk 工具
minidump_stackwalk 是breakpad工具的一部分,需要自己构建出来,步骤如下:
- 准备 depot_tools 工具
下载代码
1
| $ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
|
配置环境变量
1 2
| $ export PATH=/path/to/depot_tools:$PATH
|
- 下载 breakpad 源码
1 2 3 4
| mkdir breakpad && cd breakpad
fetch breakpad cd src
|
- 构建 breakpad
产物路径是: src/processor/minidump_stackwalk
2. 取出 dump 文件
不同版本的 dump 文件路径不一样,我手头这个 Android14 系统的dump文件在下面这个路径中:
1
| /data/data/{package name}/cache/WebView/Crashpad/new
|
3. 解析dump文件
1
| ./src/processor/minidump_stackwalk {path to dump file}
|
参考