Electron OSX native crashes do not symbolicate


#1

Hi,
We are trying to setup crash handling for our Electron app for OSX, which consists of our own native node module. While we were able to send crash reports easily, they are not symbolicated - we’ve tried to upload both the original dSYM file and locally processed breakpad symbols file. There’s a cryptic “A binary image is referenced that is unknown.” in the crash reports which might be connected.

Also, we’ve tried to use “simple-breakpad-server” (google it) and the crashes symbolicate just fine, so it’s definitely not an issue with the symbols.

To demonstrate the issue, you can download a sample Electron project (based on the tutorials of node.js and electron) from here.

Steps to reproduce the issue:

  1. update main.js with an actual DSN.
  2. update sentry.properties (or just run the wizard again, I guess).
  3. cd to native and run build_native.sh script
  4. run gen_and_send_sym.sh to upload symbols to sentry (you’ll need to update this file also with actual org and project)
  5. back to the root of repo do the normal npm i and npm start
  6. to crash the app, just move the window.

I can also provide in private the actual sentry.io project/organization in case you want to take a look in the real project.

Thanks,
Sagi


#2

Since we didn’t get any response, we’ve integrated a solution from a different service. Hope to see Sentry fixing symoblication someday, as we are currently using different services for JS exceptions and native crashes.


#3

Hi @siltus,

We have updated our Electron docs in the meanwhile and fixed some issues with symbolication, so it would be great if you could give it another shot. Also, the wizard has been updated to output some more useful information and a better upload script.

Ideally, you would always upload dSYMs and ELF debug information whenever possible, and only use Breakpad symbols for Windows or in case they are not available (e.g. for the Electron binaries). This will help sentry to provide higher quality stack traces.

The error you are receiving (“A binary image is referenced that is unknown.”) usually indicates that the crash report is incomplete. However, this usually only concerns single frames, without impacting symbolication of the remaining frames. I would certainly love to take a look at this, if you provide me with the organization and project slugs.

The sentry-electorn repository also contains an example application that symbolicates. I will try to have a look at your sample when I have some time to see what’s causing symbolication to fail.

Thanks,
Jan