Breadpad crash analysis
Windows release is built with Google's breakpad.
The .dmp
generated is Microsoft's minidump format
When a crash is encountered, a dump file is generated under the folder crash
.Take the dump file as a.dmp
for following example.
Option 1: Visual Studio
- Open the
.dmp
file with VS - Click
Debug with Native Only
- Click
Locate goldendict.pdb manually
-> click to a path that contains the.pdf
file (Require exact naming ofgoldendict.pdb
)
Bottom tab → locals
→ watch stack.
Option2: WinDbg
- Grab a modern version of WinDbg https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/
- Click Settings -> Debug settings -> Debugging paths -> Symbol path -> (add a path contains
goldendict.pdb
).
Option 3: dump_syms + minidump-stackwalk
Mozilla/Rust version (Better)
Download the exe files from
.\dump_syms.exe goldendict.pdb > goldendict.sym
.\minidump-stackwalk.exe .\crash.dmp .\goldendict.sym > f.txt
Google version
Part of Google breakpad's repo. Grab them from random places of internet (e.g. minidump-tools).
-
dump_syms.exe GoldenDict.pdb > GoldenDict.sym
The content of GoldenDict.sym is like this:MODULE windows x86_64 904B2C52C1EC411D9D0271445CAD6DCD2 GoldenDict.pdb INFO CODE_ID 645510C96CC000 GoldenDict.exe
-
create a folder such as
symbols
and a series of folders like this:GoldDict.exe a.dmp (A) symbols └─GoldenDict.pdb (B) └─904B2C52C1EC411D9D0271445CAD6DCD2 (C) └─GoldenDict.sym
A
this is the dump fileB
this is a folder name-
C
this folder takes the name from the first line ofGoldenDict.sym
file -
anlaysis the dump file like this
minidump_stackwalk.exe -s a.dmp symbols > a.txt
- check the a.txt file to find the possible crash reason. usually it will point to the actual crash line number of the source code.