bugsnag / bugsnag-cocoa

BugSnag error monitoring & exception reporter for iOS, macOS, tvOS and watchOS
https://docs.bugsnag.com/platforms/ios
MIT License
234 stars 128 forks source link

[Plat-12123] trace id in nsexception #1650

Closed kstenerud closed 3 months ago

kstenerud commented 3 months ago

Goal

Since an uncaught NSException isn't handled in an async-safe requiring environment, try to capture the trace and span IDs if they are available.

Design

Since all uncaught crashes are handled through the same channel, I had to change the crash callback signature to allow passing a flag that tells us whether we require async safety or not.

Testing

Tested manually with a test app.

github-actions[bot] commented 3 months ago

Bugsnag.framework binary size did not change - 718,176 bytes

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.3%    +620  +0.3%    +620    __TEXT,__text
  +0.2%     +32  +0.2%     +32    __DATA,__cfstring
  +0.1%     +17  +0.1%     +17    __TEXT,__cstring
  -0.6%     -32  -0.3%     -32    [__DATA]
  -3.8%    -637  -3.8%    -637    [__TEXT]
  [ = ]       0  [ = ]       0    TOTAL

Generated by :no_entry_sign: Danger