Under what circumstances will the private method of NSWindow _verifyDefaultButtonCell be called? This crash will appear in the MacOS10.15 system. Is there any good way to debug this? Can I directly hook this _verifyDefaultButtonCell to an empty implementation and stop the next message Forward?
Crash dump 👇🏻:
Time Awake Since Boot: 130000 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x000007ff13725458
Exception Note: EXC_CORPSE_NOTIFY
Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [39562]
VM Regions Near 0x7ff13725458:
CoreAnimation 000000012a5ee000-000000012c5b4000 [ 31.8M] rw-/rwx SM=PRV
-->
MALLOC_NANO 0000600000000000-0000600008000000 [128.0M] rw-/rwx SM=ALI
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libobjc.A.dylib 0x00007fff6dc2708c lookUpImpOrForward + 122
1 libobjc.A.dylib 0x00007fff6dc26b99 _objc_msgSend_uncached + 73
2 com.apple.AppKit 0x00007fff34c72a40 -[NSWindow _verifyDefaultButtonCell:] + 232
3 com.apple.AppKit 0x00007fff34c87f09 -[NSView _oldDisplayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 176
4 com.apple.AppKit 0x00007fff34bf706f -[NSView displayIfNeeded] + 755
5 com.apple.AppKit 0x00007fff34bf279f -[NSWindow displayIfNeeded] + 261
6 com.apple.AppKit 0x00007fff34bf25d3 __NSWindowGetDisplayCycleObserverForDisplay_block_invoke + 646
7 com.apple.AppKit 0x00007fff34bf0621 NSDisplayCycleObserverInvoke + 155
8 com.apple.AppKit 0x00007fff34bf01e8 NSDisplayCycleFlush + 977
9 com.apple.QuartzCore 0x00007fff4314c112 CA::Transaction::run_commit_handlers(CATransactionPhase) + 100
10 com.apple.QuartzCore 0x00007fff4314ae64 CA::Transaction::commit() + 224
11 com.apple.AppKit 0x00007fff34cace87 __62+[CATransaction(NSCATransaction) NS_setFlushesWithDisplayLink]_block_invoke + 266
12 com.apple.AppKit 0x00007fff353c877d ___NSRunLoopObserverCreateWithHandler_block_invoke + 41
13 com.apple.CoreFoundation 0x00007fff379450ee __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
14 com.apple.CoreFoundation 0x00007fff37945014 __CFRunLoopDoObservers + 457
15 com.apple.CoreFoundation 0x00007fff3794470b __CFRunLoopRun + 1219
16 com.apple.CoreFoundation 0x00007fff37943bd3 CFRunLoopRunSpecific + 499
17 com.apple.HIToolbox 0x00007fff3649a65d RunCurrentEventLoopInMode + 292
18 com.apple.HIToolbox 0x00007fff3649a39d ReceiveNextEventCommon + 600
19 com.apple.HIToolbox 0x00007fff3649a127 _BlockUntilNextEventMatchingListInModeWithFilter + 64
20 com.apple.AppKit 0x00007fff34b0beb4 _DPSNextEvent + 990
21 com.apple.AppKit 0x00007fff34b0a690 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1352
22 com.apple.AppKit 0x00007fff34afc3ae -[NSApplication run] + 658
23 com.myapp.MacOS 0x0000000104ba0ed6 specialized thunk for @callee_guaranteed () -> (@error @owned Error) + 118
24 libswiftObjectiveC.dylib 0x00007fff6ec49f0e autoreleasepool<A>(invoking:) + 46
25 com.myapp.MacOS 0x0000000104ba0e53 main + 35
26 libdyld.dylib 0x00007fff6efa07fd start + 1