“检测到堆损坏”在OS X应用程序中崩溃

时间:2015-09-24 10:47:18

标签: macos heap-corruption

我发现最新版本的软件出现了一些问题。 我收到客户关于崩溃的投诉。不幸的是,我无法从崩溃报告中获取任何信息。这是我收到的最多的一个:

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

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000

Application Specific Information:
abort() called
*** error for object 0x610000039720: Heap corruption detected, free list canary is damaged


Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib          0x000000010444c866 __pthread_kill + 10
1   libsystem_pthread.dylib         0x000000010455735c pthread_kill + 92
2   libsystem_c.dylib               0x0000000104380b1a abort + 125
3   libsystem_malloc.dylib          0x00000001044ccbee nanozone_error + 486
4   libsystem_malloc.dylib          0x00000001044ccdb0 _nano_malloc_check_clear + 445
5   libsystem_malloc.dylib          0x00000001044cb6b0 nano_malloc + 35
6   libsystem_malloc.dylib          0x00000001044c9868 malloc_zone_malloc + 71
7   com.apple.CoreFoundation        0x0000000103e63fed _CFRuntimeCreateInstance + 253
8   com.apple.CoreGraphics          0x0000000104a45d70 CGTypeCreateInstance +   79
9   com.apple.CoreGraphics          0x0000000104a45c25     region_create_with_shape + 37
10  com.apple.CoreGraphics          0x0000000104a6c0d1 CGSNewEmptyRegion + 24
11  com.apple.AppKit                0x0000000100570ae2 -[NSView _regionForOpaqueDescendants:forMove:] + 4090
12  com.apple.AppKit                0x00000001005706eb -[NSView _regionForOpaqueDescendants:forMove:] + 3075
13  com.apple.AppKit                0x00000001005706eb -[NSView _regionForOpaqueDescendants:forMove:] + 3075
14  com.apple.AppKit                0x00000001005706eb -[NSView _regionForOpaqueDescendants:forMove:] + 3075
15  com.apple.AppKit                0x00000001005706eb -[NSView _regionForOpaqueDescendants:forMove:] + 3075
16  com.apple.AppKit                0x00000001005706eb -[NSView _regionForOpaqueDescendants:forMove:] + 3075
17  com.apple.AppKit                0x000000010069b59d -[NSView _drawRect:clip:] + 1010
18  com.apple.AppKit                0x000000010069903c -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 3199
19  com.apple.AppKit                0x0000000100699bc4 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 6151
20  com.apple.AppKit                0x0000000100699bc4 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 6151
21  com.apple.AppKit                0x0000000100697eb1 -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 314
22  com.apple.AppKit                0x0000000100694e9f -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 2828
23  com.apple.AppKit                0x00000001006742da -[NSView displayIfNeeded] + 1680
24  com.apple.AppKit                0x00000001006d974e _handleWindowNeedsDisplayOrLayoutOrUpdateConstraints + 884
25  com.apple.AppKit                0x0000000100caf061 __83-[NSWindow _postWindowNeedsDisplayOrLayoutOrUpdateConstraintsUnlessPostingDisabled]_block_invoke1331 + 46
26  com.apple.CoreFoundation        0x0000000103edfd67 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
27  com.apple.CoreFoundation        0x0000000103edfcd7 __CFRunLoopDoObservers + 391
28  com.apple.CoreFoundation        0x0000000103ed13b8 __CFRunLoopRun + 776
29  com.apple.CoreFoundation        0x0000000103ed0e75 CFRunLoopRunSpecific + 309
30  com.apple.HIToolbox             0x0000000109bd2a0d RunCurrentEventLoopInMode + 226
31  com.apple.HIToolbox             0x0000000109bd27b7 ReceiveNextEventCommon + 479
32  com.apple.HIToolbox             0x0000000109bd25bc _BlockUntilNextEventMatchingListInModeWithFilter + 65
33  com.apple.AppKit                0x000000010053d24e _DPSNextEvent + 1434
34  com.apple.AppKit                0x000000010053c89b -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
35  com.apple.AppKit                0x000000010053099c -[NSApplication run] + 553
36  com.apple.AppKit                0x000000010051b783 NSApplicationMain + 940
37  libdyld.dylib                   0x00000001042b65fd start + 1

奇怪的是,在产生崩溃的代码片段中,应用程序没有做任何事情。它几乎完全闲置在那里等待。这确实使它看起来像是内存损坏问题。

我已尝试用仪器进行分析,以发现任何泄漏。我也试过Xcode 7的新地址消毒剂。无济于事。

任何人都可以给我一个暗示,我可以尝试解决这个问题吗? 我很确定这个问题只出现在发布版本中,但我仍然无法确定崩溃的原因。

0 个答案:

没有答案