A tool to batch extract stack info from dmp + sym file to human readable content.
English | 简体中文
batch parse the exeception stack of C++ code on Chromium/Electron/Node Addon from .dmp file.
wget -i list.txt --tries=3 --continue ‐‐no-clobber, and download those.dmpfiles.- put
.dmpfiles to/path/to/your/dump/dir(Default:dump). - unzip
electron-v{version}-{platform}-{arch}-symbols.zipof each platforms and arches and then copy all the files/folder frombreakpad_symbolto/path/to/electron-extract-dump/symbols(must make sure the structure looks likefilename-breakpadId-filename.sym). - then execute
npm run stackwalk /path/to/your/dump/dir. - open the
/path/to/your/dump/dirand debug those.stack.txtstack.
Sometimes, we may need to use debug symbol to generate .sym, this is for it.
- put those
.pdbor.dSYMor.debuginto/path/to/your/debug-symbols/dir/electron-v${electronVersion}/${platform}-${arch}dir. - then execute
npm run extract /path/to/your/debug-symbols/dir - the
.symfile will be auto generated tosymbols/electron-v${electronVersion}/${platform}-${arch}/${name}/${crashpadId}dir. - and then you can use those
.symto stackwalk the.dmpfile.
Notice 1: Different platfrom debug symbol can only be converted on the corresponding platform, eg: you can only use a Windows Pc to operate conversion from .pdb to .sym.
Notice 2: If windows shows you a can't find dll error, you may need to execute regsvr32 \path\to\electron-extract-dump\dll\win32-x64\msdia140.dll.
Notice 3: If you are trying to convert a x64 .pdb file, then you must put the PE file (eg: electron.exe.pdb 's PE file is electron.exe) nearby that .pdb. for x86 (ia32) arch, PE file is not the necessary part.
Convert a .dmp file and get the minidump raw content from it, if you use crashReport.start with globalExtra passed, this will help you get those args.
wget -i list.txt --tries=3 --continue ‐‐no-clobber, and download those.dmpfiles.- put
.dmpfiles to/path/to/your/dump/dir(Default:dump). - then execute
npm run dump /path/to/your/dump/dir. - open the
/path/to/your/dump/dirand debug those.dump.txtstack.
Enum all the dynamic link files and version stored in .dmp file
to .module.txt.
wget -i list.txt --tries=3 --continue ‐‐no-clobber, and download those.dmpfiles.- put
.dmpfiles to/path/to/your/dump/dir(Default:dump). - then execute
npm run modulelist /path/to/your/dump/dir. - open the
/path/to/your/dump/dirand debug those.module.txtstack.
Analyze crash reason and count from the generated stacks.
- make sure you have already run
npm run stackwalk /path/to/your/dump/dirand generated those stack file. - then execute
npm run analyze /path/to/your/dump/dirto analyze crash reason and count.
Use the last function line name to cluster all crash files from the generated stacks.
- make sure you have already run
npm run stackwalk /path/to/your/dump/dirand generated those stack file. - then execute
npm run cluster /path/to/your/dump/dirto cluster the crash reason. - open the
clusterfolder and you will see crash dump and stack in that folder named with(total: ${count}) ${last line function name}.
MIT