Steps to diagnose KVO crash in macOS Cocoa App - xcode

I am getting:
'KVO_IS_RETAINING_ALL_OBSERVERS_OF_THIS_OBJECT_IF_IT_CRASHES_AN_OBSERVER_WAS_OVERRELEASED_OR_SMASHED',
notification when I close the main window of document based Cocoa ObjC application. I do not have any KVO observers in my project in this area so there is no observer to remove. Using NSZombie doesn't work to diagnose. I suspected that a re-used memory address might be the issue. Can anyone recommend how I can determine the objects involved in this problem? Ideally I would like to see the observer object so I can work backwards from there.
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x3eadde6d1760)
frame #0: 0x00007fff68cf38ee libobjc.A.dylib`object_isClass + 31
* frame #1: 0x00007fff3f0840f6 Foundation`KVO_IS_RETAINING_ALL_OBSERVERS_OF_THIS_OBJECT_IF_IT_CRASHES_AN_OBSERVER_WAS_OVERRELEASED_OR_SMASHED + 58
frame #2: 0x00007fff3f2145fe Foundation`NSKeyValueWillChangeWithPerThreadPendingNotifications.llvm.15835543126851482145 + 282
frame #3: 0x00007fff47cfd935 QuartzCore`CAAnimation_setter(CAAnimation*, unsigned int, _CAValueType, void const*) + 132
frame #4: 0x00007fff47cfdeca QuartzCore`-[CAAnimation setDuration:] + 45
frame #5: 0x00007fff47d0314e QuartzCore`-[CALayer addAnimation:forKey:] + 332
frame #6: 0x00007fff47cb26dc QuartzCore`CA::Layer::remove_sublayer(CA::Transaction*, CALayer*) + 334
frame #7: 0x00007fff47cb2554 QuartzCore`CA::Layer::remove_from_superlayer() + 126
frame #8: 0x00007fff3a2f49a4 AppKit`-[NSView _removeLayerFromSuperlayer] + 229
frame #9: 0x00007fff3a2f431f AppKit`-[NSView _setSuperview:] + 225
frame #10: 0x00007fff3a2f7b01 AppKit`-[NSView removeFromSuperview] + 149
frame #11: 0x00007fff3a3dfa88 AppKit`-[NSView removeFromSuperviewWithoutNeedingDisplay] + 36
frame #12: 0x00007fff3a37dbf5 AppKit`-[NSView _finalize] + 1060
frame #13: 0x00007fff3a37d64a AppKit`-[NSView dealloc] + 209
frame #14: 0x00007fff68ce6c8c libobjc.A.dylib`(anonymous namespace)::AutoreleasePoolPage::pop(void*) + 726
frame #15: 0x00007fff3a9a7b93 AppKit`___NSTouchBarFinderSetNeedsUpdateOnMain_block_invoke + 56
frame #16: 0x00007fff3cd8495d CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
frame #17: 0x00007fff3cd84892 CoreFoundation`__CFRunLoopDoObservers + 452
frame #18: 0x00007fff3cd25c82 CoreFoundation`CFRunLoopRunSpecific + 365
frame #19: 0x00007fff3bfbf895 HIToolbox`RunCurrentEventLoopInMode + 293
frame #20: 0x00007fff3bfbf4d4 HIToolbox`ReceiveNextEventCommon + 371
frame #21: 0x00007fff3bfbf348 HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 64
frame #22: 0x00007fff3a27c95b AppKit`_DPSNextEvent + 997
frame #23: 0x00007fff3a27b6fa AppKit`-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1362
frame #24: 0x00007fff3a27575d AppKit`-[NSApplication run] + 699
frame #25: 0x00007fff3a264e97 AppKit`NSApplicationMain + 780
frame #26: 0x000000010004fcd2 ADR ToolBox`main(argc=3, argv=0x00007ffeefbff1e8) at main.m:13
frame #27: 0x00007fff69dc0085 libdyld.dylib`start + 1
frame #28: 0x00007fff69dc0085 libdyld.dylib`start + 1

Related

Suave "Hello World!" program doesn't work with visual studio for Mac

I got runtime errors trying to execute the "Hello World!" program from Suave web page:
open Suave.Web
open Suave.Successful
[<EntryPoint>]
let main argv =
startWebServer defaultConfig (OK "Hello, Suave!")
0
With this errors:
Loaded assembly: /Users/[myUserName]/Library/Mobile
Documents/com~apple~CloudDocs/Projects/SuaveRestApi/SuaveRestApi/bin/Debug/SuaveRestApi.exe
Loaded assembly: /Users/[myUserName]/Library/Mobile
Documents/com~apple~CloudDocs/Projects/SuaveRestApi/SuaveRestApi/bin/Debug/FSharp.Core.dll
[External] Loaded assembly: /Users/[myUserName]/Library/Mobile
Documents/com~apple~CloudDocs/Projects/SuaveRestApi/SuaveRestApi/bin/Debug/Suave.dll
[External] Loaded assembly:
/Library/Frameworks/Mono.framework/Versions/5.18.0/lib/mono/gac/System/4.0.0.0__b77a5c561934e089/System.dll
[External] Loaded assembly:
/Library/Frameworks/Mono.framework/Versions/5.18.0/lib/mono/gac/Mono.Security/4.0.0.0__0738eb9f132ed756/Mono.Security.dll
[External] Method idx 6984 is greater than number of rows (6984) in
PPDB MethodDebugInformation table, for method
.$YoLo:.cctor in
'/Users/[myUserName]/Library/Mobile
Documents/com~apple~CloudDocs/Projects/SuaveRestApi/SuaveRestApi/bin/Debug/Suave.pdb'.
Likely a malformed PDB file. Stacktrace:
at <0xffffffff> at (wrapper managed-to-native)
object.__icall_wrapper_mono_generic_class_init (intptr) [0x00007] in
<699ddfd029d348d1a69fb1f9fc28d7cb>:0 at YoLo/UTF8.get_utf8 ()
[0x00000] in
/Users/ademar/Projects/release/suave/src/Suave/Utils/YoLo.fs:447 at
Suave.Successful.OK (string) [0x00000] in
/Users/ademar/Projects/release/suave/src/Suave/Combinators.fs:136 at
App.main (string[]) [0x00000] in /Users/[myUserName]/Library/Mobile
Documents/com~apple~CloudDocs/Projects/SuaveRestApi/SuaveRestApi/App.fs:6
at (wrapper runtime-invoke) .runtime_invoke_int_object
(object,intptr,intptr,intptr) [0x00057] in
<5c0abea33afd9276a7450383a3be0a5c>:0 Memory around native instruction
pointer (0x7fff71ccc23e): 0x7fff71ccc22e ff ff c3 90 90 90 b8 48 01
00 02 49 89 ca 0f 05 .......H...I.... 0x7fff71ccc23e 73 08 48 89 c7
e9 6f a1 ff ff c3 55 48 89 e5 41 s.H...o....UH..A 0x7fff71ccc24e 57
41 56 41 55 41 54 53 48 81 ec 88 00 00 00 49 WAVAUATSH......I
0x7fff71ccc25e 89 f4 48 8d 05 01 c3 cb 32 48 8b 00 48 8d 9d 60
..H.....2H..H..`
Native stacktrace:
0 mono 0x000000010ba29842
mono_dump_native_crash_info + 898 1 mono
0x000000010b9cd303 mono_handle_native_crash + 195 2
libsystem_platform.dylib 0x00007fff71d77b3d _sigtramp + 29
3 mono 0x000000010bcdf008
simple_lower_case_mapping_higharea_table0 + 20296 4
libsystem_c.dylib 0x00007fff71c351c9 abort + 127 5
mono 0x000000010bbf9c5f
mono_log_write_logfile + 351 6 mono
0x000000010bc15dac monoeg_g_log + 204 7 mono
0x000000010bac9e68 mono_ppdb_get_seq_points + 1112 8 mono
0x000000010b93492f mono_method_to_ir + 1151 9 mono
0x000000010b91ade7 mini_method_compile + 3479 10 mono
0x000000010b91e32c mono_jit_compile_method_inner + 76 11 mono
0x000000010b921cc9 mono_jit_compile_method_with_opt + 2665 12 mono
0x000000010b925d8e mono_jit_runtime_invoke + 526 13 mono
0x000000010bb241d4 do_runtime_invoke + 84 14 mono
0x000000010bb201a8 mono_runtime_class_init_full + 872 15 mono
0x000000010b97a69c mono_generic_class_init + 28 16 ???
0x000000010beb7e2c 0x0 + 4494949932 17 mono
0x000000010b9261d3 mono_jit_runtime_invoke + 1619 18 mono
0x000000010bb241d4 do_runtime_invoke + 84 19 mono
0x000000010bb27cac do_exec_main_checked + 156 20 mono
0x000000010b98d19d mono_jit_exec + 349 21 mono
0x000000010b99037f mono_main + 11615 22 mono
0x000000010b915078 main + 264 23 libdyld.dylib
0x00007fff71b8ced9 start + 1 Pkilling 0x70000ed57000 from 0x1115795c0
Pkilling 0x70000eb54000 from 0x1115795c0 Entering thread summarizer
pause from 0x1115795c0 Finished thread summarizer pause from
0x1115795c0.
Waiting for dumping threads to resume
Debug info from gdb:
(lldb) command source -s 0 '/tmp/mono-gdb-commands.UoI26p' Executing
commands in '/tmp/mono-gdb-commands.UoI26p'. (lldb) process attach
--pid 1457 Process 1457 stopped
* thread #1, name = 'tid_307', queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
frame #0: 0x00007fff71ccb2d2 libsystem_kernel.dylib__wait4 + 10 libsystem_kernel.dylib__wait4:
-> 0x7fff71ccb2d2 <+10>: jae 0x7fff71ccb2dc ; <+20>
0x7fff71ccb2d4 <+12>: movq %rax, %rdi
0x7fff71ccb2d7 <+15>: jmp 0x7fff71cc6381 ; cerror
0x7fff71ccb2dc <+20>: retq Target 0: (mono) stopped.
Executable module set to
"/Library/Frameworks/Mono.framework/Versions/5.18.0/bin/mono".
Architecture set to: x86_64h-apple-macosx. (lldb) thread list Process
1457 stopped
* thread #1: tid = 0xd6f5, 0x00007fff71ccb2d2 libsystem_kernel.dylib__wait4 + 10, name = 'tid_307', queue =
'com.apple.main-thread', stop reason = signal SIGSTOP thread #2: tid
= 0xd6f6, 0x00007fff71cc97de libsystem_kernel.dylib__psynch_cvwait + 10, name = 'SGen worker' thread #3: tid = 0xd6f8, 0x00007fff71cc61b6
libsystem_kernel.dylibsemaphore_wait_trap + 10, name = 'Finalizer'
thread #4: tid = 0xd6f9, 0x00007fff71cc93e6
libsystem_kernel.dylib__recvfrom + 10, name = 'Debugger agent'
thread #5: tid = 0xd700, 0x00007fff71cc7b6a
libsystem_kernel.dylib__workq_kernreturn + 10 thread #6: tid =
0xd701, 0x00007fff71cc7b6a libsystem_kernel.dylib__workq_kernreturn +
10 (lldb) thread backtrace all
* thread #1, name = 'tid_307', queue = 'com.apple.main-thread', stop reason = signal SIGSTOP * frame #0: 0x00007fff71ccb2d2
libsystem_kernel.dylib__wait4 + 10
frame #1: 0x000000010ba299b6 monomono_dump_native_crash_info at mini-posix.c:1079 [opt]
frame #2: 0x000000010ba29862 monomono_dump_native_crash_info(signal="SIGABRT",
ctx=0x00007ffee42eb0f0, info=<unavailable>) at mini-posix.c:1102 [opt]
frame #3: 0x000000010b9cd303 monomono_handle_native_crash(signal="SIGABRT",
ctx=0x00007ffee42eb0f0, info=0x00007ffee42eb088) at
mini-exceptions.c:3197 [opt]
frame #4: 0x00007fff71d77b3d libsystem_platform.dylib_sigtramp + 29
frame #5: 0x00007fff71ccc23f libsystem_kernel.dylib__pthread_kill + 11
frame #6: 0x00007fff71d82c1c libsystem_pthread.dylibpthread_kill + 285
frame #7: 0x00007fff71c351c9 libsystem_c.dylibabort + 127
frame #8: 0x000000010bbf9c5f monomono_log_write_logfile(log_domain=<unavailable>,
level=<unavailable>, hdr=<unavailable>, message="Method idx 6984 is
greater than number of rows (6984) in PPDB MethodDebugInformation
table, for method <StartupCode$Suave>.$YoLo:.cctor in
'/Users/[myUserName]/Library/Mobile
Documents/com~apple~CloudDocs/Projects/SuaveRestApi/SuaveRestApi/bin/Debug/Suave.pdb'.
Likely a malformed PDB file.") at mono-log-common.c:135 [opt]
frame #9: 0x000000010bc15dac monomonoeg_g_log [inlined] monoeg_g_logstr(log_domain=0x0000000000000000,
log_level=G_LOG_LEVEL_ERROR, msg=) at goutput.c:117 [opt]
frame #10: 0x000000010bc15d83 monomonoeg_g_log [inlined] monoeg_g_logv_nofree(format=<unavailable>, args=<unavailable>) at
goutput.c:128 [opt]
frame #11: 0x000000010bc15d70 monomonoeg_g_log [inlined] monoeg_g_logv(format=, args=) at
goutput.c:135 [opt]
frame #12: 0x000000010bc15d70 monomonoeg_g_log(log_domain=0x0000000000000000,
log_level=G_LOG_LEVEL_ERROR, format=<unavailable>) at goutput.c:144
[opt]
frame #13: 0x000000010bac9e68 monomono_ppdb_get_seq_points(minfo=,
source_file=, source_file_list=,
source_files=, seq_points=0x00007ffee42eb730,
n_seq_points=) at debug-mono-ppdb.c:427 [opt]
frame #14: 0x000000010b93492f monomono_method_to_ir(cfg=<unavailable>, method=<unavailable>,
start_bblock=0x0000000000000000, end_bblock=0x0000000000000000,
return_var=0x0000000000000000, inline_args=0x0000000000000000,
inline_offset=<unavailable>, is_virtual_call=<unavailable>) at
method-to-ir.c:6674 [opt]
frame #15: 0x000000010b91ade7 monomini_method_compile(method=, opts=374434303,
domain=0x00007fbc91f02f00, flags=JIT_FLAG_RUN_CCTORS, parts=0,
aot_method_index=-1) at mini.c:3455 [opt]
frame #16: 0x000000010b91e32c monomono_jit_compile_method_inner(method=0x00007fbc94832ea8,
target_domain=0x00007fbc91f02f00, opt=<unavailable>,
error=0x00007ffee42ebd60) at mini.c:4043 [opt]
frame #17: 0x000000010b921cc9 monomono_jit_compile_method_with_opt(method=0x00007fbc94832ea8,
opt=, jit_only=1, error=0x00007ffee42ebd60) at
mini-runtime.c:2411 [opt]
frame #18: 0x000000010b925d8e monomono_jit_runtime_invoke [inlined] mono_jit_compile_method_jit_only(method=<unavailable>,
error=0x00007ffee42ebd60) at mini-runtime.c:2471 [opt]
frame #19: 0x000000010b925d6e monomono_jit_runtime_invoke(method=, obj=,
params=0x0000000000000000, exc=,
error=0x00007ffee42ebd60) at mini-runtime.c:3011 [opt]
frame #20: 0x000000010bb241d4 monodo_runtime_invoke(method=0x00007fbc94832ea8,
obj=0x0000000000000000, params=0x0000000000000000,
exc=0x00007ffee42ebd08, error=0x00007ffee42ebd60) at object.c:2960
[opt]
frame #21: 0x000000010bb201a8 monomono_runtime_class_init_full [inlined] mono_runtime_try_invoke(method=,
obj=, params=, error=0x00007ffee42ebd60) at
object.c:3069 [opt]
frame #22: 0x000000010bb20167 monomono_runtime_class_init_full(vtable=0x00007fbc9402ee60,
error=0x00007ffee42ebd60) at object.c:526 [opt]
frame #23: 0x000000010b97a69c monomono_generic_class_init(vtable=) at
jit-icalls.c:1511 [opt]
frame #24: 0x000000010beb7e2c
frame #25: 0x000000010b9261d3 monomono_jit_runtime_invoke(method=<unavailable>, obj=<unavailable>,
params=0x00007ffee42ec148, exc=0x00007fbc9402ee60,
error=<unavailable>) at mini-runtime.c:3148 [opt]
frame #26: 0x000000010bb241d4 monodo_runtime_invoke(method=0x00007fbc91f04798,
obj=0x0000000000000000, params=0x00007ffee42ec148,
exc=0x0000000000000000, error=0x00007ffee42ec180) at object.c:2960
[opt]
frame #27: 0x000000010bb27cac monodo_exec_main_checked [inlined] mono_runtime_invoke_checked(method=<unavailable>, obj=<unavailable>,
params=<unavailable>, error=0x00007ffee42ec180) at object.c:3128 [opt]
frame #28: 0x000000010bb27c9d monodo_exec_main_checked(method=0x00007fbc91f04798,
args=, error=0x00007ffee42ec180) at object.c:4949 [opt]
frame #29: 0x000000010b98d19d monomono_jit_exec at driver.g.c:1236 [opt]
frame #30: 0x000000010b98d18f monomono_jit_exec(domain=, assembly=,
argc=1, argv=0x00007ffee42ec550) at driver.g.c:1195 [opt]
frame #31: 0x000000010b99037f monomono_main [inlined] main_thread_handler at driver.g.c:1313 [opt]
frame #32: 0x000000010b990348 monomono_main(argc=4, argv=) at driver.g.c:2483 [opt]
frame #33: 0x000000010b915078 monomain [inlined] mono_main_with_options(argc=<unavailable>, argv=<unavailable>) at
main.c:50 [opt]
frame #34: 0x000000010b915064 monomain(argc=4, argv=) at main.c:405 [opt]
frame #35: 0x00007fff71b8ced9 libdyld.dylibstart + 1
frame #36: 0x00007fff71b8ced9 libdyld.dylibstart + 1 thread #2, name = 'SGen worker'
frame #0: 0x00007fff71cc97de libsystem_kernel.dylib__psynch_cvwait + 10
frame #1: 0x00007fff71d83593 libsystem_pthread.dylib_pthread_cond_wait + 724
frame #2: 0x000000010bbf10ee monothread_func [inlined] mono_os_cond_wait(mutex=<unavailable>) at mono-os-mutex.h:173 [opt]
frame #3: 0x000000010bbf10db monothread_func at sgen-thread-pool.c:165 [opt]
frame #4: 0x000000010bbf10cd monothread_func(data=0x0000000000000000) at sgen-thread-pool.c:196
[opt]
frame #5: 0x00007fff71d80305 libsystem_pthread.dylib_pthread_body + 126
frame #6: 0x00007fff71d8326f libsystem_pthread.dylib_pthread_start + 70
frame #7: 0x00007fff71d7f415 libsystem_pthread.dylibthread_start + 13 thread #3, name = 'Finalizer'
frame #0: 0x00007fff71cc61b6 libsystem_kernel.dylibsemaphore_wait_trap + 10
frame #1: 0x000000010bb9e9aa monofinalizer_thread [inlined] mono_os_sem_wait(flags=MONO_SEM_FLAGS_ALERTABLE) at
mono-os-semaphore.h:90 [opt]
frame #2: 0x000000010bb9e99f monofinalizer_thread at mono-coop-semaphore.h:43 [opt]
frame #3: 0x000000010bb9e985 monofinalizer_thread(unused=) at gc.c:918 [opt]
frame #4: 0x000000010bb49e13 monostart_wrapper [inlined] start_wrapper_internal at threads.c:1151 [opt]
frame #5: 0x000000010bb49d83 monostart_wrapper(data=0x00007fbc91f34850) at threads.c:1211 [opt]
frame #6: 0x00007fff71d80305 libsystem_pthread.dylib_pthread_body + 126
frame #7: 0x00007fff71d8326f libsystem_pthread.dylib_pthread_start + 70
frame #8: 0x00007fff71d7f415 libsystem_pthread.dylibthread_start + 13 thread #4, name = 'Debugger agent'
frame #0: 0x00007fff71cc93e6 libsystem_kernel.dylib__recvfrom + 10
frame #1: 0x000000010ba7e45e monosocket_transport_recv(buf=2001-01-01 00:00:00 UTC, len=11) at
debugger-agent.c:1108 [opt]
frame #2: 0x000000010ba6f296 monodebugger_thread [inlined] transport_recv(len=11) at debugger-agent.c:1518 [opt]
frame #3: 0x000000010ba6f27c monodebugger_thread(arg=<unavailable>) at debugger-agent.c:9484 [opt]
frame #4: 0x000000010bb49e13 monostart_wrapper [inlined] start_wrapper_internal at threads.c:1151 [opt]
frame #5: 0x000000010bb49d83 monostart_wrapper(data=0x00007fbc91f389a0) at threads.c:1211 [opt]
frame #6: 0x00007fff71d80305 libsystem_pthread.dylib_pthread_body + 126
frame #7: 0x00007fff71d8326f libsystem_pthread.dylib_pthread_start + 70
frame #8: 0x00007fff71d7f415 libsystem_pthread.dylibthread_start + 13 thread #5
frame #0: 0x00007fff71cc7b6a libsystem_kernel.dylib__workq_kernreturn + 10
frame #1: 0x00007fff71d7f630 libsystem_pthread.dylib_pthread_wqthread + 446
frame #2: 0x00007fff71d7f405 libsystem_pthread.dylibstart_wqthread + 13 thread #6
frame #0: 0x00007fff71cc7b6a libsystem_kernel.dylib__workq_kernreturn + 10
frame #1: 0x00007fff71d7f630 libsystem_pthread.dylib_pthread_wqthread + 446
frame #2: 0x00007fff71d7f405 libsystem_pthread.dylibstart_wqthread + 13 (lldb) detach
================================================================= Got a SIGABRT while executing native code. This usually indicates a fatal
error in the mono runtime or one of the native libraries used by your
application.
(lldb) quit Process 1457 detached
It seems an issue with Visual Studio for Mac and Suave. I did the same test in Visual Studio Code (for mac also) and worked fine.

Crash with EXC_BAD_ACCESS in Xcode - debugging

I occasionally run into a crash with my Mac app, where the debugger stops and catches an EXC_BAD_ACCESS error from main.m. The stack trace looks like as follows:
* thread #1: tid = 0x406ad1, 0x00007fff8be600d7 libobjc.A.dylib`objc_msgSend + 23, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x600036e8de50)
frame #0: 0x00007fff8be600d7 libobjc.A.dylib`objc_msgSend + 23
frame #1: 0x00007fff96edb93b AppKit`_NSPopoverCloseAndAnimate + 1102
frame #2: 0x00007fff9754cfed AppKit`-[NSPopover _geometryInWindowDidChangeForView:] + 166
frame #3: 0x00007fff8bb15cdc CoreFoundation`__CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
frame #4: 0x00007fff8ba07244 CoreFoundation`_CFXNotificationPost + 3140
frame #5: 0x00007fff8ffa6c31 Foundation`-[NSNotificationCenter postNotificationName:object:userInfo:] + 66
frame #6: 0x00007fff96ca31c1 AppKit`-[NSView _invalidateFocus] + 421
frame #7: 0x00007fff96ca3c32 AppKit`-[NSView removeFromSuperview] + 469
frame #8: 0x00007fff96ea569a AppKit`-[NSWindow dealloc] + 1233
frame #9: 0x00007fff96ca9857 AppKit`-[NSWindow release] + 193
frame #10: 0x00007fff8ba0f9c0 CoreFoundation`CFRelease + 304
frame #11: 0x00007fff8ba23fad CoreFoundation`-[__NSArrayM dealloc] + 205
frame #12: 0x00007fff8be8089c libobjc.A.dylib`objc_object::sidetable_release(bool) + 236
frame #13: 0x00007fff8be66e8f libobjc.A.dylib`(anonymous namespace)::AutoreleasePoolPage::pop(void*) + 575
frame #14: 0x00007fff8ba31302 CoreFoundation`_CFAutoreleasePoolPop + 50
frame #15: 0x00007fff8ffbfedf Foundation`-[NSAutoreleasePool drain] + 153
frame #16: 0x00007fff96c7e661 AppKit`-[NSApplication run] + 800
frame #17: 0x00007fff96c69a14 AppKit`NSApplicationMain + 1832
frame #18: 0x0000000100003ec2 Contacts Journal Beta`main(argc=3, argv=0x00007fff5fbff670) + 34 at main.m:13
frame #19: 0x00007fff977c35c9 libdyld.dylib`start + 1
I've tried debugging this with NSZombieEnabled and with the Zombies instrument, and they haven't been helpful. But the debugger does stop at this breakpoint (on the rare occasions I run into this crash), so I'm wondering if there is anything I can do with the debugger to get more information as to which object is causing this crash and why.
Would love some lldb tips. Also, is there any way to force the "NSAutoreleasePool drain" that seems to be part of the stack trace? It seems to me that this is the initial cause of the problem, so any fix would have to trigger an autorelease drain (use ARC in my app).

How to solve the lldb error in Xcode?

My app works fine on simulator, and worked on the device, but once upon a time it started to crash.
I just get "lldb" error with no messages. When I type "bt" command I see this:
thread #1: tid = 0x24a8, 0x38a1fcc0 libobjc.A.dylibobjc_exception_throw, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
frame #0: 0x38a1fcc0 libobjc.A.dylibobjc_exception_throw
frame #1: 0x2e284bd0 CoreFoundation-[NSException raise] + 8
frame #2: 0x2ebca15e Foundation-[NSObject(NSKeyValueCoding) setValue:forKey:] + 202
frame #3: 0x2ebdbd8c Foundation-[NSObject(NSKeyValueCoding) setValue:forKeyPath:] + 300
frame #4: 0x2e1f4a54 CoreFoundation-[NSArray makeObjectsPerformSelector:] + 180
frame #5: 0x30e2553e UIKit-[UINib instantiateWithOwner:options:] + 1122
frame #6: 0x30d7de8e UIKit-[UIViewController _loadViewFromNibNamed:bundle:] + 234
frame #7: 0x30bda344 UIKit-[UIViewController loadView] + 92
frame #8: 0x30aba874 UIKit-[UIViewController loadViewIfRequired] + 72
frame #9: 0x30aba7f0 UIKit-[UIViewController view] + 24
frame #10: 0x30bda276 UIKit-[UIWindow handleStatusBarChangeFromHeight:toHeight:] + 694
frame #11: 0x30b41416 UIKit+[UIWindow _noteStatusBarHeightChanged:oldHeight:forAutolayoutRootViewsOnly:] + 238
frame #12: 0x30c41b10 UIKit__79 - [UIApplication _setStatusBarHidden:animationParameters:changeApplicationFlag:]_block_invoke + 132
frame #13: 0x30aeba1a UIKit+[UIView(UIViewAnimationWithBlocks) _setupAnimationWithDuration:delay:view:options:factory:animations:start:animationStateGenerator:completion:] + 490
frame #14: 0x30c2431e UIKit+[UIView(UIViewAnimationWithBlocks) animateWithDuration:animations:completion:] + 70
frame #15: 0x30b66dca UIKit-[UIApplication _setStatusBarHidden:animationParameters:changeApplicationFlag:] + 462
frame #16: 0x30ac18e0 UIKit-[UIApplication _updateCurrentStatusBarViewControllerAppearance] + 248
frame #17: 0x30abed72 UIKit-[UIWindow _setHidden:forced:] + 234
frame #18: 0x30b28a30 UIKit-[UIWindow makeKeyAndVisible] + 60
frame #19: 0x30b256c4 UIKit-[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1820
frame #20: 0x30b1fca8 UIKit-[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 720
frame #21: 0x30abbc76 UIKit-[UIApplication handleEvent:withNewEvent:] + 3550
frame #22: 0x30abadd8 UIKit-[UIApplication sendEvent:] + 72
frame #23: 0x30b1f3e4 UIKit_UIApplicationHandleEvent + 616
frame #24: 0x33128b54 GraphicsServices_PurpleEventCallback + 608
frame #25: 0x3312873e GraphicsServicesPurpleEventCallback + 34
frame #26: 0x2e24f806 CoreFoundation__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 34
frame #27: 0x2e24f7a2 CoreFoundation__CFRunLoopDoSource1 + 346
frame #28: 0x2e24df6e CoreFoundation__CFRunLoopRun + 1406
frame #29: 0x2e1b8728 CoreFoundationCFRunLoopRunSpecific + 524
frame #30: 0x2e1b850a CoreFoundationCFRunLoopRunInMode + 106
frame #31: 0x30b1e60a UIKit-[UIApplication _run] + 762
frame #32: 0x30b19870 UIKitUIApplicationMain + 1136
<ul>
<li>frame #33: 0x000e5ed8 SpriteKitSimpleGamemain(argc=1, argv=0x27d62c34) + 116 at main.m:16
I can't understand why it crashes. What may be the reason?
UPD
I've disabled Exception Breakpoints and got the new strange error:
Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key snewRecordLabel.'
The snewRecordLabel is deleted from the Storyboard UILabel, but it probably is the reason of error. How to remove it?
There is some connection is in storyboard for snewRecordLabel, you can open storyboard into simple textedit & see xml data if you find snewRecordLabel, than there must be missing link will be present in storyboard.

awakeFromNib called continuously

I have a view based NSOutlineView within a NSView. When the view is presented in my app, the outlineview flicker's continuously. awakeFromNib is getting called repeatedly, which contains [myOutlineView reloadData]. However, once I resize the window (hence the view) the flickering subsides and awakeFromNib is no longer being called.
I presume the flickering is caused by the repeated calling of reloadData in awakeFromNib. What I can't determine is why awakeFromNib would be called continuously. I understand that it is called every time a NSTableCellView is created by NSOutline (here), but this doesn't explain why it would be called continuously.
Since this behaviour would stop once I resized the window, I was suspicious of the NSScrollView in which the NSOutlineview is embedded in, but I don't now how to confirm this or more importantly how to fix it.
So can anyone give me some guidance on what could be causing this behaviour?
Edit
This is the stack trace with a break at awakeFromNib, based on this is does look like the creation of a NSTableCellView that calls the awakeFromNib, but why is this done continuously?
frame #1: 0x00007fff8cfd3b5f AppKit`-[NSIBObjectData nibInstantiateWithOwner:topLevelObjects:] + 1223
frame #2: 0x00007fff8d077e7c AppKit`-[NSNib _instantiateNibWithExternalNameTable:] + 600
frame #3: 0x00007fff8d19139b AppKit`-[NSNib instantiateNibWithExternalNameTable:] + 17
frame #4: 0x00007fff8d09c278 AppKit`-[NSTableRowData _unarchiveViewWithIdentifier:owner:] + 526
frame #5: 0x00007fff8d09bedd AppKit`-[NSOutlineView makeViewWithIdentifier:owner:] + 48
frame #6: 0x0000000100039c03 Allocator`-[SBRebalanceViewController outlineView:viewForTableColumn:item:](self=0x00006080003c03c0, _cmd=0x00007fff8da60816, outlineView=0x0000000100427ce0, tableColumn=0x000060800009f0e0, item=0x000060000084b580) + 1315 at SBRebalanceViewController.m:146
frame #7: 0x00007fff8d09f964 AppKit`-[NSTableView(NSTableViewViewBased) makeViewForTableColumn:row:] + 77
frame #8: 0x00007fff8d09ec97 AppKit`-[NSTableRowData _addViewToRowView:atColumn:row:] + 305
frame #9: 0x00007fff8d09e9ca AppKit`-[NSTableRowData _addViewsToRowView:atRow:] + 191
frame #10: 0x00007fff8d09babe AppKit`-[NSTableRowData _addRowViewForVisibleRow:withPriorView:] + 421
frame #11: 0x00007fff8d09b83c AppKit`-[NSTableRowData _addRowViewForVisibleRow:withPriorRowIndex:inDictionary:withRowAnimation:] + 278
frame #12: 0x00007fff8d09a906 AppKit`-[NSTableRowData _unsafeUpdateVisibleRowEntries] + 1640
frame #13: 0x00007fff8d09a19c AppKit`-[NSTableRowData updateVisibleRowViews] + 230
frame #14: 0x00007fff8d099dc4 AppKit`-[NSTableView layout] + 165
frame #15: 0x00007fff8d098e1d AppKit`-[NSView _layoutSubtreeWithOldSize:] + 325
frame #16: 0x00007fff8d09903e AppKit`-[NSView _layoutSubtreeWithOldSize:] + 870
frame #17: 0x00007fff8d09903e AppKit`-[NSView _layoutSubtreeWithOldSize:] + 870
frame #18: 0x00007fff8d09903e AppKit`-[NSView _layoutSubtreeWithOldSize:] + 870
frame #19: 0x00007fff8d09903e AppKit`-[NSView _layoutSubtreeWithOldSize:] + 870
frame #20: 0x00007fff8d09903e AppKit`-[NSView _layoutSubtreeWithOldSize:] + 870
frame #21: 0x00007fff8d09903e AppKit`-[NSView _layoutSubtreeWithOldSize:] + 870
frame #22: 0x00007fff8d09903e AppKit`-[NSView _layoutSubtreeWithOldSize:] + 870
frame #23: 0x00007fff8d09903e AppKit`-[NSView _layoutSubtreeWithOldSize:] + 870
frame #24: 0x00007fff8d09903e AppKit`-[NSView _layoutSubtreeWithOldSize:] + 870
frame #25: 0x00007fff8d07e584 AppKit`-[NSView layoutSubtreeIfNeeded] + 883
frame #26: 0x00007fff8d746688 AppKit`_NSViewLayoutSubtreesThatUseAutolayoutIfNeeded + 71
frame #27: 0x00007fff8d1097d1 AppKit`-[NSWindow(NSConstraintBasedLayout) _layoutViewTree] + 84
frame #28: 0x00007fff8d139d9d AppKit`-[NSWindow(NSConstraintBasedLayout) layoutIfNeeded] + 214
frame #29: 0x00007fff8d139c86 AppKit`-[NSView _layoutAtWindowLevelIfNeeded] + 80
frame #30: 0x00007fff8d13c3c3 AppKit`-[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 48
frame #31: 0x00007fff8d11c2fa AppKit`-[NSView displayIfNeeded] + 1680
frame #32: 0x00007fff8d18174e AppKit`_handleWindowNeedsDisplayOrLayoutOrUpdateConstraints + 884
frame #33: 0x00007fff8d757061 AppKit`__83-[NSWindow _postWindowNeedsDisplayOrLayoutOrUpdateConstraintsUnlessPostingDisabled]_block_invoke1331 + 46
frame #34: 0x00007fff904efe17 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
frame #35: 0x00007fff904efd87 CoreFoundation`__CFRunLoopDoObservers + 391
frame #36: 0x00007fff904e1468 CoreFoundation`__CFRunLoopRun + 776
frame #37: 0x00007fff904e0f25 CoreFoundation`CFRunLoopRunSpecific + 309
frame #38: 0x00007fff91192a0d HIToolbox`RunCurrentEventLoopInMode + 226
frame #39: 0x00007fff91192685 HIToolbox`ReceiveNextEventCommon + 173
frame #40: 0x00007fff911925bc HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 65
frame #41: 0x00007fff8cfe526e AppKit`_DPSNextEvent + 1434
frame #42: 0x00007fff8cfe48bb AppKit`-[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
frame #43: 0x00007fff8cfd89bc AppKit`-[NSApplication run] + 553
frame #44: 0x00007fff8cfc37a3 AppKit`NSApplicationMain + 940
frame #45: 0x0000000100007f02 Allocator`main(argc=7, argv=0x00007fff5fbff7f8) + 34 at main.m:13

NSSplitView crash when delegate assigned

I have a NSSplitView inside a NSViewController's xib file. If I connect the delegate outlet to File's Owner, or if I do the same thing in code (self.splitView.delegate = self) then the app crashes. No error message, it just stops in main.m. I have not implemented any of the NSSplitViewDelegate methods, just connected the outlet. Here's the backtrace:
* thread #1: tid = 0x6f27f8, 0x00007fff8f58a097 libobjc.A.dylib`objc_msgSend + 23, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
frame #0: 0x00007fff8f58a097 libobjc.A.dylib`objc_msgSend + 23
frame #1: 0x00007fff8dfb98d8 AppKit`-[NSSplitView _effectiveFrameForDrawnFrame:ofDividerAtIndex:] + 477
frame #2: 0x00007fff8dfb9499 AppKit`-[NSSplitView resetCursorRects] + 500
frame #3: 0x00007fff8df62664 AppKit`-[NSView(NSInternal) _updateTrackingAreas] + 610
frame #4: 0x00007fff8df62a17 AppKit`-[NSView(NSInternal) _updateTrackingAreas] + 1557
frame #5: 0x00007fff8df62a17 AppKit`-[NSView(NSInternal) _updateTrackingAreas] + 1557
frame #6: 0x00007fff8df62a17 AppKit`-[NSView(NSInternal) _updateTrackingAreas] + 1557
frame #7: 0x00007fff8df62a17 AppKit`-[NSView(NSInternal) _updateTrackingAreas] + 1557
frame #8: 0x00007fff8dfb8f34 AppKit`_handleInvalidCursorRectsNote + 994
frame #9: 0x00007fff8e5968a1 AppKit`__35-[NSWindow _postInvalidCursorRects]_block_invoke2988 + 46
frame #10: 0x00007fff81f7de17 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
frame #11: 0x00007fff81f7dd87 CoreFoundation`__CFRunLoopDoObservers + 391
frame #12: 0x00007fff81f6f468 CoreFoundation`__CFRunLoopRun + 776
frame #13: 0x00007fff81f6ef25 CoreFoundation`CFRunLoopRunSpecific + 309
frame #14: 0x00007fff87070a0d HIToolbox`RunCurrentEventLoopInMode + 226
frame #15: 0x00007fff87070685 HIToolbox`ReceiveNextEventCommon + 173
frame #16: 0x00007fff870705bc HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 65
frame #17: 0x00007fff8de1c3de AppKit`_DPSNextEvent + 1434
frame #18: 0x00007fff8de1ba2b AppKit`-[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
frame #19: 0x00007fff8de0fb2c AppKit`-[NSApplication run] + 553
frame #20: 0x00007fff8ddfa913 AppKit`NSApplicationMain + 940
I have another split view in the app, although it's in a NSWindowController, not view controller. It works fine with the delegate connection. The problematic split view controller is inside one of the window controller's split view panes, if that matters. I should be able to nest them, right?

Resources