'Google breakpad on arm64. Symbols not found in minidump
I'm building my application and source code of breakpad
on Ubuntu 20.04
with two architectures (arm64
and x86_64
).
Both have been built on Mac with M1 inside docker with Ubuntu 20.04
(x86_64
arch is emulated).
My build configuration:
./configure CC=clang CXX=clang++ CFLAGS="-stdlib=libc++" CXXFLAGS="-stdlib=libc++"
I'm running and provoking my app to crash in the same way in both cases (arm64
and x86_64
arch).
For x86_64
it works perfectly, I can look into generated minidump with tool minidump_stackwalk
and I can see symbols from my app.
But it doesn't work for arm64
. minidump_stackwalk
tells me that it could't find symbols for generated minidump.
Of course in both cases I provide suitable .sym
file.
Both .sym
files generated for arm64
and x86_64
look fine, although I do not rule out that this file is the problem, but more probable is that problem is in generated minidump.
I also noticed that minidump (from arm64
) expects symbols from my app to be in 2 separated memory ranges:
0x000000200000 – 0x0000006d3000
0x0000006e2000 – 0x0000016d6000
.
The first range is a good one, and it is the same that occurs in case of x86_64
.
I can assume that this is good range, cuz if I add address of function from sym
file to this offset 0x000000200000
it is correct address of same function in my crash's stack trace.
Anyone has the same problem with breakpad
builded for arm64
?
Maybe I just have to figure out how to get rid of this second incorrect range saved in my minidump?
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|