Google breakpad on arm64. Symbols not found in minidump

81 views
Skip to first unread message

Dariusz Ozygała

unread,
Apr 26, 2022, 10:13:02 AM4/26/22
to Google Breakpad Discuss

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?

Reply all
Reply to author
Forward
0 new messages