xamarin / xamarin-macios

.NET for iOS, Mac Catalyst, macOS, and tvOS provide open-source bindings of the Apple SDKs for use with .NET managed languages such as C#
Other
2.46k stars 511 forks source link

Stop stripping symbols by default in Debug builds #20235

Closed rolfbjarne closed 5 months ago

rolfbjarne commented 7 months ago

Several years ago, we started stripping native symbols from Debug builds by default because it would shrink the app size, which would make transferring/installing the app faster on device.

Unfortunately this makes crash reports quite useless. Symbolicating crash reports is sometimes possible, but:

  1. It that would require us to teach developers how to do it, and it's not entirely trivial.
  2. It only works on offline symbolication, once you have a crash report (which a lot of people struggle to even find) - in particular it wouldn't work for the native stack trace that is printed by the app and shows up in the IDE's Application Output.
  3. Because of 1. it adds a "file issue or google, get feedback about how to symbolicate, reproduce issue again" loop to developer's lives - which might be avoided in the first place if we just printed a better stack trace in the Application Output's pad in the IDE.

Case data:

So the suggestion would be to disable stripping symbols by default in Debug builds.

rolfbjarne commented 5 months ago

Fixed in #20308.