gpt4 book ai didi

objective-c - cocoa :_NSDisplayOperationStack 崩溃;需要指导

转载 作者:行者123 更新时间:2023-12-03 16:26:06 28 4
gpt4 key购买 nike

问题

我收到来自用户的崩溃报告,如下所示:

<小时/>
Code Type:       X86-64 (Native)
Parent Process: launchd [223]

Date/Time: 2012-03-22 11:28:33.087 +0800
OS Version: Mac OS X 10.7.3 (11D50)
Report Version: 9

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

Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: 0x000000000000000d, 0x0000000000000000

VM Regions Near 0:
-->
__TEXT 000000010c202000-000000010c29c000 [ 616K] r-x/rwx SM=COW /Applications/CodeKit.app/Contents/MacOS/CodeKit

Application Specific Information:
objc_msgSend() selector name: release
objc[22113]: garbage collection is OFF

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libobjc.A.dylib 0x00007fff904f5390 objc_msgSend_vtable14 + 16
1 com.apple.Foundation 0x00007fff8f664137 empty + 61
2 com.apple.Foundation 0x00007fff8f666c10 dealloc + 24
3 com.apple.Foundation 0x00007fff8f666bd1 -[NSConcreteMapTable dealloc] + 64
4 com.apple.AppKit 0x00007fff892bc52c -[_NSDisplayOperation dealloc] + 84
5 com.apple.CoreFoundation 0x00007fff8fdc7ca0 CFRelease + 176
6 com.apple.CoreFoundation 0x00007fff8fdf0742 -[__NSArrayM removeObjectAtIndex:] + 434
7 com.apple.AppKit 0x00007fff892bc408 -[_NSDisplayOperationStack exitDisplayOperationForWindow:] + 417
8 com.apple.AppKit 0x00007fff892be2fc -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 7136
9 com.apple.AppKit 0x00007fff892b6429 -[NSView displayIfNeeded] + 1676
10 [SEE DISCUSSION BELOW]
<小时/>

讨论

第 10 行及以下各报告差异很大(因此与崩溃无关)。然而,从第 1 行到第 9 行的顺序总是相同。每次崩溃都包含这个确切的序列。我在 Google 上搜索了“_NSDisplayOperationStack”,发现了数十个应用程序的类似崩溃报告(包括 Omni 应用程序和 Apple 的 Motion 等知名应用程序)。

<小时/>

我需要什么

因为崩溃来自 Core Foundation,所以我不知道从哪里开始寻找问题。它似乎位于 Cocoa 私有(private) View 绘制机器的深处。更糟糕的是,我根本无法在我的机器上复制崩溃,因此我无法使用 Instruments 跟踪它。但我收到了很多具有上述模式的报告,所以我知道这是一个问题。更糟糕的是,用户甚至无法可靠地重现崩溃——它完全是间歇性的。

我希望上面的序列对某人来说看起来很熟悉,他们可以指导我从哪里开始寻找问题。谢谢。

最佳答案

我在 Apple 开发者论坛上发布了同样的问题,一位工程师告诉我,堆栈跟踪看起来与并发 View 绘制有关,这是 10.6 中引入的一项功能。

我检查了所有 NIB 文件,发现两个 NSButton 实例被设置为同时绘制 --- 这不是故意的;我一定是在某个时候不小心选中了该框。

我禁用了它们的并发绘图,并且此崩溃神奇地消失了。

关于objective-c - cocoa :_NSDisplayOperationStack 崩溃;需要指导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9818419/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com