Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Option for uncaught NSExceptions on macOS #4471

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

philipphofmann
Copy link
Member

@philipphofmann philipphofmann commented Oct 24, 2024

📜 Description

Add a new option, enableReportingUncaughtExceptions, for reporting uncaught exceptions on macOS. AS SwiftUI applications on macOS can't easily set a Principal class in the Info.plist, especially when using the NSApplicationDelegate, our existing solution of the SentryCrashExceptionApplication doesn't work for them. This new option fixes that problem.

💡 Motivation and Context

A customer reported the current setup doesn't work for them when using NSApplicationDelegate.

💚 How did you test it?

Unit tests and manually with the simulator. I compared the new way (enableReportingUncaughtExceptions) with the old way of SentryCrashExceptionApplication and all three tests worked the same way. Report exception seems a bit broken, but that was already the case before. We should look at this individually.

Simulator tests

I added three different ways for reporting NSExcption.

  1. Raise: Creating an NSException and calling raise() on it.
  2. Report: Creating an NSException and calling NSApplication.shared.reportException(exception)
  3. NSRange: Accessing an array out of bounds in ObjC.

macOS-SwiftUI

Raise

https://sentry-sdks.sentry.io/issues/6016580829/events/1cfac198b76944878b21610eac25b941/?project=5428557
image

Report

https://sentry-sdks.sentry.io/issues/6016587329/events/ebefcb69480243cebbc4b42ba15519e6/?project=5428557
image

NSRange

https://sentry-sdks.sentry.io/issues/6016594158/events/31eabb811c0d47aeaa8d997d087f878b/?project=5428557
image

macOS-Swift

Raise

https://sentry-sdks.sentry.io/issues/6016621535/events/3fcff45068e3481486617c4eb447d818/?project=5428557
image

Report

https://sentry-sdks.sentry.io/issues/6016587329/events/3c402084c01442eea986fc8cd6476ec7/?project=5428557
image

NSRange

https://sentry-sdks.sentry.io/issues/6016756316/events/21241a61000c4e278aa6908f26b35ddf/?project=5428557
CleanShot 2024-10-24 at 14 42 45@2x

Xcode Crash Reports

Xcode Crash Report Raise

Exception Type:        EXC_BREAKPOINT (SIGTRAP)
Exception Codes:       0x0000000000000001, 0x000000018f3411fc

Termination Reason:    Namespace SIGNAL, Code 5 Trace/BPT trap: 5
Terminating Process:   exc handler [30212]

Application Specific Backtrace 0:
0   CoreFoundation                      0x000000018b59cec0 __exceptionPreprocess + 176
1   libobjc.A.dylib                     0x000000018b082cd8 objc_exception_throw + 88
2   CoreFoundation                      0x000000018b5c154c _CFBundleGetValueForInfoKey + 0
3   macOS-SwiftUI.debug.dylib           0x0000000102fcfa90 $s13macOS_SwiftUI11ContentViewV16raiseNSExceptionyyF + 552
4   macOS-SwiftUI.debug.dylib           0x0000000102fcf860 $s13macOS_SwiftUI11ContentViewV4bodyQrvg0cD005TupleF0VyAE6ButtonVyAE4TextVG_A3LtGyXEfU_yycACcfu1_yycfu2_ + 12
5   SwiftUI                             0x00000001ba87c394 $s7SwiftUI12ButtonActionO14callAsFunctionyyFyyScMYcXEfU_ + 32
6   SwiftUI                             0x00000001b9598280 $s7SwiftUI12ButtonActionO14callAsFunctionyyFyyScMYcXEfU_TA + 20
7   SwiftUI                             0x00000001b9ca52d8 $sxs5Error_pIgrzo_xsAA_pIegrzo_s8SendableRzlTRyt_Tg5TA + 28
8   SwiftUI                             0x00000001b9ca2ce8 $sScM14assumeIsolated_4file4linexxyKScMYcXE_s12StaticStringVSutKs8SendableRzlFZyt_Tg5 + 132
9   SwiftUI                             0x00000001ba214978 $s7SwiftUI17AppKitButtonStyleV7ContentV4body11environmentQrAA17EnvironmentValuesV_tFyycAA09PrimitiveeF13ConfigurationVcfu_yycfu0_ + 468
10  SwiftUI                             0x00000001ba21f4e8 $s7SwiftUI0A14UIAppKitButton33_9FEBA96B0BC70E1682E82D239F242E73LLC010didReleaseE0yySo8NSButtonCFyycfU0_TA + 28
11  SwiftUICore                         0x000000022665a540 $sIeg_ytIegr_TRTA + 28
12  SwiftUICore                         0x00000002268fc280 $s7SwiftUI6UpdateO15dispatchActionsyyFZ + 1236
13  SwiftUICore                         0x00000002268fb764 $s7SwiftUI6UpdateO3endyyFZ + 212
14  SwiftUI                             0x00000001ba21f124 $s7SwiftUI0A14UIAppKitButton33_9FEBA96B0BC70E1682E82D239F242E73LLC010didReleaseE0yySo8NSButtonCFTf4dn_n + 320
15  SwiftUI                             0x00000001ba21d2c4 $s7SwiftUI0A14UIAppKitButton33_9FEBA96B0BC70E1682E82D239F242E73LLC010didReleaseE0yySo8NSButtonCFTo + 52
16  AppKit                              0x000000018f20da50 -[NSApplication(NSResponder) sendAction:to:from:] + 460
17  AppKit                              0x000000018f6924e4 __40-[NSControl _sendActionsForEvents:view:]_block_invoke + 216
18  AppKit                              0x000000018f6923bc -[NSControl _sendActionsForEvents:view:] + 216
19  AppKit                              0x000000018f20abcc NSControlTrackMouse + 1616
20  AppKit                              0x000000018f20a550 -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 144
21  AppKit                              0x000000018f20a3c8 -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 580
22  AppKit                              0x000000018f20984c -[NSControl mouseDown:] + 448
23  AppKit                              0x000000018f2086ec -[NSWindow(NSEventRouting) _handleMouseDownEvent:isDelayedEvent:] + 3672
24  AppKit                              0x000000018f194044 -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 384
25  AppKit                              0x000000018f193cf4 -[NSWindow(NSEventRouting) sendEvent:] + 284
26  AppKit                              0x000000018f99159c -[NSApplication(NSEventRouting) sendEvent:] + 1656
27  AppKit                              0x000000018f5a4984 -[NSApplication _handleEvent:] + 60
28  AppKit                              0x000000018f05fba4 -[NSApplication run] + 520
29  AppKit                              0x000000018f03644c NSApplicationMain + 888
30  SwiftUI                             0x00000001b952c784 $s7SwiftUI6runAppys5NeverOSo21NSApplicationDelegate_So11NSResponderCXcFTf4e_nAA07TestingdG0C_Tg5Tm + 160
31  SwiftUI                             0x00000001b99b030c $s7SwiftUI6runAppys5NeverOxAA0D0RzlF + 84
32  SwiftUI                             0x00000001b9cbfbec $s7SwiftUI3AppPAAE4mainyyFZ + 224
33  macOS-SwiftUI.debug.dylib           0x0000000102fd172c $s13macOS_SwiftUI15MacOSSwiftUIAppV5$mainyyFZ + 40
34  macOS-SwiftUI.debug.dylib           0x0000000102fd1d94 __debug_main_executable_dylib_entry_point + 12
35  dyld                                0x000000018b0c0274 start + 2840


Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   AppKit                        	       0x18f3411fc -[NSApplication _crashOnException:] + 256
1   AppKit                        	       0x18f340fbc -[NSApplication reportException:] + 460
2   Sentry                        	       0x10330b1c8 __65+[SentryUncaughtNSExceptions swizzleNSApplicationReportException]_block_invoke_2 + 124 (SentryUncaughtNSExceptions.m:26)
3   AppKit                        	       0x18f5a2990 NSApplicationUncaughtExceptionHandler + 152
4   Sentry                        	       0x10336b4ac handleException + 2088 (SentryCrashMonitor_NSException.m:105)
5   Sentry                        	       0x10336ac6c handleUncaughtException + 48 (SentryCrashMonitor_NSException.m:113)
6   Sentry                        	       0x10330b2a4 +[SentryUncaughtNSExceptions capture:] + 196 (SentryUncaughtNSExceptions.m:47)
7   Sentry                        	       0x10330b1a0 __65+[SentryUncaughtNSExceptions swizzleNSApplicationReportException]_block_invoke_2 + 84 (SentryUncaughtNSExceptions.m:26)
8   AppKit                        	       0x18f05fc34 -[NSApplication run] + 664
9   AppKit                        	       0x18f03644c NSApplicationMain + 888
10  SwiftUI                       	       0x1b952c784 specialized runApp(_:) + 160
11  SwiftUI                       	       0x1b99b030c runApp<A>(_:) + 84
12  SwiftUI                       	       0x1b9cbfbec static App.main() + 224
13  macOS-SwiftUI.debug.dylib     	       0x102fd172c static MacOSSwiftUIApp.$main() + 40
14  macOS-SwiftUI.debug.dylib     	       0x102fd1d94 __debug_main_executable_dylib_entry_point + 12 (macOS_SwiftUIApp.swift:5)
15  dyld                          	       0x18b0c0274 start + 2840

Xcode Crash Report Report

Exception Type:        EXC_BREAKPOINT (SIGTRAP)
Exception Codes:       0x0000000000000001, 0x000000018f3411fc

Termination Reason:    Namespace SIGNAL, Code 5 Trace/BPT trap: 5
Terminating Process:   exc handler [30000]

Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   AppKit                        	       0x18f3411fc -[NSApplication _crashOnException:] + 256
1   AppKit                        	       0x18f340fbc -[NSApplication reportException:] + 460
2   Sentry                        	       0x1047df1c8 __65+[SentryUncaughtNSExceptions swizzleNSApplicationReportException]_block_invoke_2 + 124 (SentryUncaughtNSExceptions.m:26)
3   AppKit                        	       0x18f5a2990 NSApplicationUncaughtExceptionHandler + 152
4   Sentry                        	       0x10483f4ac handleException + 2088 (SentryCrashMonitor_NSException.m:105)
5   Sentry                        	       0x10483ec6c handleUncaughtException + 48 (SentryCrashMonitor_NSException.m:113)
6   Sentry                        	       0x1047df2a4 +[SentryUncaughtNSExceptions capture:] + 196 (SentryUncaughtNSExceptions.m:47)
7   Sentry                        	       0x1047df1a0 __65+[SentryUncaughtNSExceptions swizzleNSApplicationReportException]_block_invoke_2 + 84 (SentryUncaughtNSExceptions.m:26)
8   macOS-SwiftUI.debug.dylib     	       0x1044a3eb0 ContentView.reportNSException() + 584 (ContentView.swift:40)
9   macOS-SwiftUI.debug.dylib     	       0x1044a3c60 implicit closure #6 in implicit closure #5 in closure #1 in ContentView.body.getter + 12 (ContentView.swift:15)
10  SwiftUI                       	       0x1ba87c394 closure #1 in ButtonAction.callAsFunction() + 32
11  SwiftUI                       	       0x1b9598280 partial apply for closure #1 in ButtonAction.callAsFunction() + 20
12  SwiftUI                       	       0x1b9ca52d8 partial apply for specialized thunk for @callee_guaranteed () -> (@out A, @error @owned Error) + 28
13  SwiftUI                       	       0x1b9ca2ce8 specialized static MainActor.assumeIsolated<A>(_:file:line:) + 132
14  SwiftUI                       	       0x1ba214978 implicit closure #2 in implicit closure #1 in AppKitButtonStyle.Content.body(environment:) + 468
15  SwiftUI                       	       0x1ba21f4e8 partial apply for closure #2 in SwiftUIAppKitButton.didReleaseButton(_:) + 28
16  SwiftUICore                   	       0x22665a540 partial apply for thunk for @escaping @callee_guaranteed () -> () + 28
17  SwiftUICore                   	       0x2268fc280 static Update.dispatchActions() + 1236
18  SwiftUICore                   	       0x2268fb764 static Update.end() + 212
19  SwiftUI                       	       0x1ba21f124 specialized SwiftUIAppKitButton.didReleaseButton(_:) + 320
20  SwiftUI                       	       0x1ba21d2c4 @objc SwiftUIAppKitButton.didReleaseButton(_:) + 52
21  AppKit                        	       0x18f20da50 -[NSApplication(NSResponder) sendAction:to:from:] + 460
22  AppKit                        	       0x18f6924e4 __40-[NSControl _sendActionsForEvents:view:]_block_invoke + 216
23  AppKit                        	       0x18f6923bc -[NSControl _sendActionsForEvents:view:] + 216
24  AppKit                        	       0x18f20abcc NSControlTrackMouse + 1616
25  AppKit                        	       0x18f20a550 -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 144
26  AppKit                        	       0x18f20a3c8 -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 580
27  AppKit                        	       0x18f20984c -[NSControl mouseDown:] + 448
28  AppKit                        	       0x18f2086ec -[NSWindow(NSEventRouting) _handleMouseDownEvent:isDelayedEvent:] + 3672
29  AppKit                        	       0x18f194044 -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 384
30  AppKit                        	       0x18f193cf4 -[NSWindow(NSEventRouting) sendEvent:] + 284
31  AppKit                        	       0x18f99159c -[NSApplication(NSEventRouting) sendEvent:] + 1656
32  AppKit                        	       0x18f5a4984 -[NSApplication _handleEvent:] + 60
33  AppKit                        	       0x18f05fba4 -[NSApplication run] + 520
34  AppKit                        	       0x18f03644c NSApplicationMain + 888
35  SwiftUI                       	       0x1b952c784 specialized runApp(_:) + 160
36  SwiftUI                       	       0x1b99b030c runApp<A>(_:) + 84
37  SwiftUI                       	       0x1b9cbfbec static App.main() + 224
38  macOS-SwiftUI.debug.dylib     	       0x1044a572c static MacOSSwiftUIApp.$main() + 40
39  macOS-SwiftUI.debug.dylib     	       0x1044a5d94 __debug_main_executa

Xcode Crash Report NSRange

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BREAKPOINT (SIGTRAP)
Exception Codes:       0x0000000000000001, 0x000000018f3411fc

Termination Reason:    Namespace SIGNAL, Code 5 Trace/BPT trap: 5
Terminating Process:   exc handler [29181]

Application Specific Backtrace 0:
0   CoreFoundation                      0x000000018b59cec0 __exceptionPreprocess + 176
1   libobjc.A.dylib                     0x000000018b082cd8 objc_exception_throw + 88
2   CoreFoundation                      0x000000018b5c5540 CFArrayApply + 0
3   Sentry                              0x00000001031a4704 +[SentrySDK crash] + 72
4   macOS-SwiftUI.debug.dylib           0x0000000102de00b0 $s13macOS_SwiftUI11ContentViewV5crashyyF + 32
5   macOS-SwiftUI.debug.dylib           0x0000000102de0088 $s13macOS_SwiftUI11ContentViewV4bodyQrvg0cD005TupleF0VyAE6ButtonVyAE4TextVG_A3LtGyXEfU_yycACcfu5_yycfu6_ + 12
6   SwiftUI                             0x00000001ba87c394 $s7SwiftUI12ButtonActionO14callAsFunctionyyFyyScMYcXEfU_ + 32
7   SwiftUI                             0x00000001b9598280 $s7SwiftUI12ButtonActionO14callAsFunctionyyFyyScMYcXEfU_TA + 20
8   SwiftUI                             0x00000001b9ca52d8 $sxs5Error_pIgrzo_xsAA_pIegrzo_s8SendableRzlTRyt_Tg5TA + 28
9   SwiftUI                             0x00000001b9ca2ce8 $sScM14assumeIsolated_4file4linexxyKScMYcXE_s12StaticStringVSutKs8SendableRzlFZyt_Tg5 + 132
10  SwiftUI                             0x00000001ba214978 $s7SwiftUI17AppKitButtonStyleV7ContentV4body11environmentQrAA17EnvironmentValuesV_tFyycAA09PrimitiveeF13ConfigurationVcfu_yycfu0_ + 468
11  SwiftUI                             0x00000001ba21f4e8 $s7SwiftUI0A14UIAppKitButton33_9FEBA96B0BC70E1682E82D239F242E73LLC010didReleaseE0yySo8NSButtonCFyycfU0_TA + 28
12  SwiftUICore                         0x000000022665a540 $sIeg_ytIegr_TRTA + 28
13  SwiftUICore                         0x00000002268fc280 $s7SwiftUI6UpdateO15dispatchActionsyyFZ + 1236
14  SwiftUICore                         0x00000002268fb764 $s7SwiftUI6UpdateO3endyyFZ + 212
15  SwiftUI                             0x00000001ba21f124 $s7SwiftUI0A14UIAppKitButton33_9FEBA96B0BC70E1682E82D239F242E73LLC010didReleaseE0yySo8NSButtonCFTf4dn_n + 320
16  SwiftUI                             0x00000001ba21d2c4 $s7SwiftUI0A14UIAppKitButton33_9FEBA96B0BC70E1682E82D239F242E73LLC010didReleaseE0yySo8NSButtonCFTo + 52
17  AppKit                              0x000000018f20da50 -[NSApplication(NSResponder) sendAction:to:from:] + 460
18  AppKit                              0x000000018f6924e4 __40-[NSControl _sendActionsForEvents:view:]_block_invoke + 216
19  AppKit                              0x000000018f6923bc -[NSControl _sendActionsForEvents:view:] + 216
20  AppKit                              0x000000018f20abcc NSControlTrackMouse + 1616
21  AppKit                              0x000000018f20a550 -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 144
22  AppKit                              0x000000018f20a3c8 -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 580
23  AppKit                              0x000000018f20984c -[NSControl mouseDown:] + 448
24  AppKit                              0x000000018f2086ec -[NSWindow(NSEventRouting) _handleMouseDownEvent:isDelayedEvent:] + 3672
25  AppKit                              0x000000018f194044 -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 384
26  AppKit                              0x000000018f193cf4 -[NSWindow(NSEventRouting) sendEvent:] + 284
27  AppKit                              0x000000018f99159c -[NSApplication(NSEventRouting) sendEvent:] + 1656
28  AppKit                              0x000000018f5a4984 -[NSApplication _handleEvent:] + 60
29  AppKit                              0x000000018f05fba4 -[NSApplication run] + 520
30  AppKit                              0x000000018f03644c NSApplicationMain + 888
31  SwiftUI                             0x00000001b952c784 $s7SwiftUI6runAppys5NeverOSo21NSApplicationDelegate_So11NSResponderCXcFTf4e_nAA07TestingdG0C_Tg5Tm + 160
32  SwiftUI                             0x00000001b99b030c $s7SwiftUI6runAppys5NeverOxAA0D0RzlF + 84
33  SwiftUI                             0x00000001b9cbfbec $s7SwiftUI3AppPAAE4mainyyFZ + 224
34  macOS-SwiftUI.debug.dylib           0x0000000102de172c $s13macOS_SwiftUI15MacOSSwiftUIAppV5$mainyyFZ + 40
35  macOS-SwiftUI.debug.dylib           0x0000000102de1d94 __debug_main_executable_dylib_entry_point + 12
36  dyld                                0x000000018b0c0274 start + 2840


Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   AppKit                        	       0x18f3411fc -[NSApplication _crashOnException:] + 256
1   AppKit                        	       0x18f340fbc -[NSApplication reportException:] + 460
2   Sentry                        	       0x10311b1c8 __65+[SentryUncaughtNSExceptions swizzleNSApplicationReportException]_block_invoke_2 + 124 (SentryUncaughtNSExceptions.m:26)
3   AppKit                        	       0x18f5a2990 NSApplicationUncaughtExceptionHandler + 152
4   Sentry                        	       0x10317b4ac handleException + 2088 (SentryCrashMonitor_NSException.m:105)
5   Sentry                        	       0x10317ac6c handleUncaughtException + 48 (SentryCrashMonitor_NSException.m:113)
6   Sentry                        	       0x10311b2a4 +[SentryUncaughtNSExceptions capture:] + 196 (SentryUncaughtNSExceptions.m:47)
7   Sentry                        	       0x10311b1a0 __65+[SentryUncaughtNSExceptions swizzleNSApplicationReportException]_block_invoke_2 + 84 (SentryUncaughtNSExceptions.m:26)
8   AppKit                        	       0x18f05fc34 -[NSApplication run] + 664
9   AppKit                        	       0x18f03644c NSApplicationMain + 888
10  SwiftUI                       	       0x1b952c784 specialized runApp(_:) + 160
11  SwiftUI                       	       0x1b99b030c runApp<A>(_:) + 84
12  SwiftUI                       	       0x1b9cbfbec static App.main() + 224
13  macOS-SwiftUI.debug.dylib     	       0x102de172c static MacOSSwiftUIApp.$main() + 40
14  macOS-SwiftUI.debug.dylib     	       0x102de1d94 __debug_main_executable_dylib_entry_point + 12 (macOS_SwiftUIApp.swift:5)
15  dyld                          	       0x18b0c0274 start + 2840

📝 Checklist

You have to check all boxes before merging:

  • I reviewed the submitted code.
  • I added tests to verify the changes.
  • No new PII added or SDK only sends newly added PII if sendDefaultPII is enabled.
  • I updated the docs if needed.
  • Review from the native team if needed.
  • No breaking change or entry added to the changelog.
  • No breaking change for hybrid SDKs or communicated to hybrid SDKs.

🔮 Next steps

Add a new option, enableReportingUncaughtExceptions, for reporting
uncaught exceptions on macOS. AS SwiftUI applications on macOS can't
easily set a Principal class in the Info.plist, especially when using
the NSApplicationDelegate, our existing solution of the
SentryCrashExceptionApplication doesn't work for them. This new option
fixes that problem.
@@ -5,8 +5,7 @@ import Sentry
class AppDelegate: NSObject, NSApplicationDelegate {

func applicationDidFinishLaunching(_ aNotification: Notification) {
UserDefaults.standard.register(defaults: ["NSApplicationCrashOnExceptions": true])
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed this to using the SentryCrashExceptionApplication in the Info.plist file.

Copy link

github-actions bot commented Oct 24, 2024

Messages
📖 Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against 304f39a

Copy link

codecov bot commented Oct 24, 2024

Codecov Report

Attention: Patch coverage is 15.38462% with 11 lines in your changes missing coverage. Please review.

Project coverage is 91.790%. Comparing base (4569cc9) to head (304f39a).

Files with missing lines Patch % Lines
SentryTestUtils/ClearTestState.swift 0.000% 6 Missing ⚠️
.../SentryCrash/SentryUncaughtNSExceptionsTests.swift 0.000% 5 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@              Coverage Diff              @@
##              main     #4471       +/-   ##
=============================================
- Coverage   91.818%   91.790%   -0.029%     
=============================================
  Files          610       611        +1     
  Lines        68230     68240       +10     
  Branches     24493     24494        +1     
=============================================
- Hits         62648     62638       -10     
- Misses        5489      5510       +21     
+ Partials        93        92        -1     
Files with missing lines Coverage Δ
Sources/Sentry/SentryCrashIntegration.m 99.038% <100.000%> (+0.009%) ⬆️
Sources/Sentry/SentryOptions.m 99.433% <ø> (ø)
...ions/SentryCrash/SentryCrashIntegrationTests.swift 86.850% <ø> (ø)
Tests/SentryTests/SentryOptionsTest.m 98.451% <ø> (ø)
.../SentryCrash/SentryUncaughtNSExceptionsTests.swift 0.000% <0.000%> (ø)
SentryTestUtils/ClearTestState.swift 90.000% <0.000%> (-10.000%) ⬇️

... and 7 files with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4569cc9...304f39a. Read the comment docs.

Copy link

github-actions bot commented Oct 24, 2024

Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1220.55 ms 1235.51 ms 14.96 ms
Size 21.90 KiB 708.91 KiB 687.01 KiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
51ffd8c 1234.40 ms 1246.22 ms 11.82 ms
b15521e 1224.44 ms 1251.13 ms 26.68 ms
3297d6e 1195.69 ms 1212.35 ms 16.65 ms
c6773e5 1222.48 ms 1240.02 ms 17.54 ms
39a4941 1210.69 ms 1219.83 ms 9.14 ms
ecd9ecd 1241.28 ms 1260.35 ms 19.07 ms
5269d20 1230.18 ms 1252.64 ms 22.46 ms
cbf6225 1221.73 ms 1251.20 ms 29.47 ms
3de9971 1224.38 ms 1245.33 ms 20.95 ms
add9550 1221.20 ms 1250.04 ms 28.84 ms

App size

Revision Plain With Sentry Diff
51ffd8c 21.58 KiB 418.69 KiB 397.11 KiB
b15521e 21.58 KiB 573.18 KiB 551.60 KiB
3297d6e 21.58 KiB 418.44 KiB 396.86 KiB
c6773e5 20.76 KiB 435.25 KiB 414.49 KiB
39a4941 22.84 KiB 402.63 KiB 379.79 KiB
ecd9ecd 20.76 KiB 420.23 KiB 399.47 KiB
5269d20 21.58 KiB 714.41 KiB 692.83 KiB
cbf6225 20.76 KiB 425.77 KiB 405.00 KiB
3de9971 21.58 KiB 574.17 KiB 552.59 KiB
add9550 21.58 KiB 418.37 KiB 396.79 KiB

Previous results on branch: feat/uncaught-ns-exceptions

Startup times

Revision Plain With Sentry Diff
a3b8d95 1245.37 ms 1258.92 ms 13.55 ms
27158ef 1213.46 ms 1239.08 ms 25.62 ms

App size

Revision Plain With Sentry Diff
a3b8d95 21.90 KiB 707.97 KiB 686.06 KiB
27158ef 21.90 KiB 707.97 KiB 686.07 KiB

@philipphofmann philipphofmann changed the title feat: Option for uncaught NSExceptions on maOS feat: Option for uncaught NSExceptions on macOS Oct 24, 2024
@brustolin
Copy link
Contributor

Sorry @philipphofmann, I will only be able to review this on Monday

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants