如何在[[NSCU GSWindowBuffer colorSpace]retain]调试macOS Sierra上的应用程序崩溃
我通过Mac应用商店分发应用程序。随着macOS Sierra(10.12和10.12.1)的升级,我的许多用户看到应用程序在看似随机的时间崩溃 我自己还不能复制这个,但是它影响了很多用户。我怀疑是macOS Sierra的变化导致了这种情况,因为该应用程序在旧版本的macOS X上运行良好 当崩溃深入AppKit时,我如何进行调试 以下是我所知道的:如何在[[NSCU GSWindowBuffer colorSpace]retain]调试macOS Sierra上的应用程序崩溃,macos,crash,segmentation-fault,webkit,macos-sierra,Macos,Crash,Segmentation Fault,Webkit,Macos Sierra,我通过Mac应用商店分发应用程序。随着macOS Sierra(10.12和10.12.1)的升级,我的许多用户看到应用程序在看似随机的时间崩溃 我自己还不能复制这个,但是它影响了很多用户。我怀疑是macOS Sierra的变化导致了这种情况,因为该应用程序在旧版本的macOS X上运行良好 当崩溃深入AppKit时,我如何进行调试 以下是我所知道的: 基于Mac OS X 10.11(Xcode 7.2)构建的基于文档的Mac应用程序 在10.11和之前工作正常,在10.12和10.12.1
- 基于Mac OS X 10.11(Xcode 7.2)构建的基于文档的Mac应用程序
- 在10.11和之前工作正常,在10.12和10.12.1随机发生碰撞
- 它使用嵌入式WebView
- 原因是每次:
atobjc\u msgSend()选择器名称:retain
-[\u NSCGSWindowBuffer colorSpace]
- 所有崩溃日志在其他线程的堆栈跟踪中显示对
的引用com.apple.JavaScriptCore
- 一些用户表示,当应用程序崩溃时,他们以全屏或分屏模式使用该应用程序
崩溃线程:0调度队列:com.apple.main-Thread
异常类型:EXC\U坏访问(SIGSEGV)
异常代码:0x00002a955ae2bec0处的内核地址无效
例外说明:EXC_尸体通知
终止信号:分段故障:11
终止原因:命名空间信号,代码0xb
正在终止进程:exc处理程序[0]
0x2a955ae2bec0附近的VM区域:
JS JIT生成的代码000026d481e01000-000026d481e02000[4K]--/rwx SM=NUL
-->
MALLOC_NANO 0000060000000000-0000060000240000[36.0M]rw-/rwx SM=PRV
特定于应用程序的信息:
objc_msgSend()选择器名称:retain
线程0崩溃::调度队列:com.apple.main-Thread
0 libobjc.A.dylib 0x00007fffa66d8b5d objc_msgSend+29
1 com.apple.AppKit 0x00007fff8fc86b71-[[u NSCGSWindowBuffer颜色空间]+33
2 com.apple.AppKit 0x00007fff8fc5b5ad\uuuu NSCGSWindowBackingStoreMark\uuuu block\u invoke+997
3 com.apple.AppKit 0x00007fff8fc1eba3 NSCGTransaction运行订单的预调试+289
4 com.apple.AppKit 0x00007fff8fc1ea6f NSCGTransaction运行预调试\u31
5 com.apple.AppKit 0x00007fff8fc1ea44\uuuu39+[\unscgstransaction currentTransaction]\ublock\uinvoke+34
6 com.apple.QuartzCore 0x00007fff979921ba CA::事务::运行提交处理程序(CATTransactionPhase)+46
7 com.apple.QuartzCore 0x00007fff97a9a12f CA::Context::commit_事务(CA::transaction*)+959
8 com.apple.QuartzCore 0x00007fff97990d55 CA::Transaction::commit()+475
9 com.apple.AppKit 0x00007fff8ff00c69\uuuu37+[NSDisplayCycle currentDisplayCycle]\uBlock\uInvoke.31+323
10 com.apple.CoreFoundation 0x00007fff91e75ec7\uuuu CFRUNLOOP\u正在调用\u OUT\u来调用\u观察者\u回调函数\uuuu+23
11 com.apple.CoreFoundation 0x00007fff91e75e37\uu cfrunloopdoobserver+391
12 com.apple.CoreFoundation 0x00007fff91e56d79 uu CFRunLoopRun+873
13 com.apple.CoreFoundation 0x00007fff91e567b4 CFRunLoopRunSpecific+420
14 com.apple.HIToolbox 0x00007fff913f2fbc RunCurrentEventLoopInMode+240
15 com.apple.HIToolbox 0x00007fff913f2cf9 ReceiveNextEventCommon+184
16 com.apple.HIToolbox 0x00007fff913f2c26 _blockuntinexteventmatchinglistinmodewithfilter+71
17 com.apple.AppKit 0x00007fff8fadcb79 _dpsnextent+1093
18 com.apple.AppKit 0x00007fff901f21c3-[NSApplication(NSEvent)\下一个VentMachingeVentMask:untilDate:inMode:dequeue:+1637
19 com.apple.AppKit 0x00007fff8fad153d-[n应用程序运行]+926
20 com.apple.AppKit 0x00007fff8fa9c1ad NSApplicationMain+1237
21 libdyld.dylib 0x00007fffa6fc3255启动+1
线程1:
0 libsystem_kernel.dylib 0x00007fffa70f1fde_uuusemwait_信号+10
1 libsystem_c.dylib 0x00007fffa7078b72纳米睡眠+199
2 libc++.1.dylib 0x00007fffa5ba865b std::uu 1::此线程::睡眠u for(std::uuu 1::chrono::duration const&)+80
3 com.apple.JavaScriptCore 0x00007fff94ccb3df void std::_1::this_thread::sleep_for(std:_1::chrono::duration const&+63
4 com.apple.JavaScriptCore 0x00007fff94cca3d1 bmalloc::waitUntilFalse(std::u 1::unique_lock&,std:u 1::chrono::duration,bool&)+113
5 com.apple.JavaScriptCore 0x00007fff94cca220 bmalloc::Heap::cleave(std:_1::unique_lock&,std:_1::chrono::duration)+48
6 com.apple.JavaScriptCore 0x00007fff94cca0b4 bmalloc::Heap::ConcurrentCleave()+68
7 com.apple.JavaScriptCore 0x00007fff94ccb621 bmalloc::AsyncTask::threadRunLoop()+97
8 com.apple.JavaScriptCore 0x00007fff94ccb529 bmalloc::AsyncTask::threadEntryPoint(bmalloc::AsyncTask*)+9
9 com.apple.JavaScriptCore 0x00007fff94ccb7dd void*std::_1::_thread_proxy(void*)+93
10 libsystem_pthread.dylib 0x00007fffa71daaab_pthread_body+180
11 libsystempthread.dyli
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00002a955ae2bec0
Exception Note: EXC_CORPSE_NOTIFY
Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [0]
VM Regions Near 0x2a955ae2bec0:
JS JIT generated code 000026d481e01000-000026d481e02000 [ 4K] ---/rwx SM=NUL
-->
MALLOC_NANO 0000600000000000-0000600002400000 [ 36.0M] rw-/rwx SM=PRV
Application Specific Information:
objc_msgSend() selector name: retain
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libobjc.A.dylib 0x00007fffa66d8b5d objc_msgSend + 29
1 com.apple.AppKit 0x00007fff8fc86b71 -[_NSCGSWindowBuffer colorSpace] + 33
2 com.apple.AppKit 0x00007fff8fc5b5ad __NSCGSWindowBackingStoreMark__block_invoke + 997
3 com.apple.AppKit 0x00007fff8fc1eba3 NSCGSTransactionRunPreCommitActionsForOrder_ + 289
4 com.apple.AppKit 0x00007fff8fc1ea6f NSCGSTransactionRunPreCommitActions_ + 31
5 com.apple.AppKit 0x00007fff8fc1ea44 __39+[_NSCGSTransaction currentTransaction]_block_invoke + 34
6 com.apple.QuartzCore 0x00007fff979921ba CA::Transaction::run_commit_handlers(CATransactionPhase) + 46
7 com.apple.QuartzCore 0x00007fff97a9a12f CA::Context::commit_transaction(CA::Transaction*) + 959
8 com.apple.QuartzCore 0x00007fff97990d55 CA::Transaction::commit() + 475
9 com.apple.AppKit 0x00007fff8ff00c69 __37+[NSDisplayCycle currentDisplayCycle]_block_invoke.31 + 323
10 com.apple.CoreFoundation 0x00007fff91e75ec7 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
11 com.apple.CoreFoundation 0x00007fff91e75e37 __CFRunLoopDoObservers + 391
12 com.apple.CoreFoundation 0x00007fff91e56d79 __CFRunLoopRun + 873
13 com.apple.CoreFoundation 0x00007fff91e567b4 CFRunLoopRunSpecific + 420
14 com.apple.HIToolbox 0x00007fff913f2fbc RunCurrentEventLoopInMode + 240
15 com.apple.HIToolbox 0x00007fff913f2cf9 ReceiveNextEventCommon + 184
16 com.apple.HIToolbox 0x00007fff913f2c26 _BlockUntilNextEventMatchingListInModeWithFilter + 71
17 com.apple.AppKit 0x00007fff8fadcb79 _DPSNextEvent + 1093
18 com.apple.AppKit 0x00007fff901f21c3 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1637
19 com.apple.AppKit 0x00007fff8fad153d -[NSApplication run] + 926
20 com.apple.AppKit 0x00007fff8fa9c1ad NSApplicationMain + 1237
21 libdyld.dylib 0x00007fffa6fc3255 start + 1
Thread 1:
0 libsystem_kernel.dylib 0x00007fffa70f1fde __semwait_signal + 10
1 libsystem_c.dylib 0x00007fffa7078b72 nanosleep + 199
2 libc++.1.dylib 0x00007fffa5ba865b std::__1::this_thread::sleep_for(std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > const&) + 80
3 com.apple.JavaScriptCore 0x00007fff94ccb3df void std::__1::this_thread::sleep_for<long long, std::__1::ratio<1l, 1000l> >(std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> > const&) + 63
4 com.apple.JavaScriptCore 0x00007fff94cca3d1 bmalloc::waitUntilFalse(std::__1::unique_lock<bmalloc::StaticMutex>&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >, bool&) + 113
5 com.apple.JavaScriptCore 0x00007fff94cca220 bmalloc::Heap::scavenge(std::__1::unique_lock<bmalloc::StaticMutex>&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >) + 48
6 com.apple.JavaScriptCore 0x00007fff94cca0b4 bmalloc::Heap::concurrentScavenge() + 68
7 com.apple.JavaScriptCore 0x00007fff94ccb621 bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::*)()>::threadRunLoop() + 97
8 com.apple.JavaScriptCore 0x00007fff94ccb529 bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::*)()>::threadEntryPoint(bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::*)()>*) + 9
9 com.apple.JavaScriptCore 0x00007fff94ccb7dd void* std::__1::__thread_proxy<std::__1::tuple<void (*)(bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::*)()>*), bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::*)()>*> >(void*) + 93
10 libsystem_pthread.dylib 0x00007fffa71daaab _pthread_body + 180
11 libsystem_pthread.dylib 0x00007fffa71da9f7 _pthread_start + 286
12 libsystem_pthread.dylib 0x00007fffa71da221 thread_start + 13
[...]