sentry-native icon indicating copy to clipboard operation
sentry-native copied to clipboard

build+install breakpad's dump_syms executable

Open madebr opened this issue 4 years ago • 3 comments

Part of the build process when using the breakpad backend, is dumping all symbols from an executable (that contains debug symbols). This pr adds support to the cmake script for building it.

  • [ ] This pr needs https://github.com/getsentry/breakpad/pull/17 because there are some breakpad compile errors
  • [ ] The sentry-native unit tests do not trigger building dump_syms because it only builds the bare minimum
  • [ ] Right now, it will build dump_syms unconditionally when using the breakpad backend. I did not add exceptions for e.g. Android/iOS/... .
  • [ ] Untested on mingw

Some feedback would be appreciated.

madebr avatar Jul 13 '21 14:07 madebr

@madebr before going ahead with this, can you clarify on this:

Part of the build process when using the breakpad backend, is dumping all symbols from an executable (that contains debug symbols).

With Sentry, this is not required at all. Like @Swatinem mentioned earlier, you should upload the .exe/dll and .pdb files to Sentry. This allows us to extract higher fidelity debugging information that what the Breakpad symbol format offers. We will also be phasing out support for Breakpad in the SDK pretty soon.

jan-auer avatar Jul 19 '21 11:07 jan-auer

We will also be phasing out support for Breakpad in the SDK pretty soon.

Please be sure to offer a fix/workaround for issue https://github.com/getsentry/sentry-native/issues/537 before phasing out Breakpad.

paresy avatar Aug 11 '21 07:08 paresy

@madebr before going ahead with this, can you clarify on this:

Part of the build process when using the breakpad backend, is dumping all symbols from an executable (that contains debug symbols).

My use case is for an open source project such that users can easily create good crash reports. Because open source projects generally generate a lot of variants of binaries, storing debug symbols centrally and/or using sentry's service is not practical. That's why I was thinking about using breakpad for users to generate reports locally. Hiding/obfuscating source code is not needed here.

I'm currently investigating backward-cpp. So perhaps, I won't need crashpad at all.

With Sentry, this is not required at all. Like @Swatinem mentioned earlier, you should upload the .exe/dll and .pdb files to Sentry. This allows us to extract higher fidelity debugging information that what the Breakpad symbol format offers. We will also be phasing out support for Breakpad in the SDK pretty soon.

If so, then you will also probably stop maintaining the sentry/breakpad repo. Then it won't make sense to push forward with these changes.

Thanks for your time!

madebr avatar Aug 11 '21 13:08 madebr