I, like many others, have had issues with Xcode 6+ crashing. I get the SourceKit crashes as well as full application crashes. On a whim I figured I'd try 6.1.1 (developer member center) and it was worse, a debugger breakpoint now results in a a full application crash. So I said forget it and went back to 6.1, but I still have crashes when putting in a debugger breakpoint.
Apparently this crash with breakpoint only affects the Simulator, physical devices set and stop at breakpoints without an issue. Weird!
It's absolutely maddening! Anyone else getting this?
Things I've tried:
Head of the stack trace:
Process: Xcode [7904]
Path: /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier: com.apple.dt.Xcode
Version: 6.1 (6604)
Build Info: IDEFrameworks-6604000000000000~2
App Item ID: 497799835
App External ID: 752282650
Code Type: X86-64 (Native)
Parent Process: launchd [185]
Responsible: Xcode [7904]
User ID: 501
Date/Time: 2014-11-25 12:32:49.348 -0800
OS Version: Mac OS X 10.9.5 (13F34)
Report Version: 11
Anonymous UUID: E22980F9-B80B-F985-200A-FE471C623C56
Crashed Thread: 23 <DBGLLDBSessionThread (pid=7957)>
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000001409bdfd0
VM Regions Near 0x1409bdfd0:
Stack 000000014093b000-00000001409bd000 [ 520K] rw-/rwx SM=COW thread 22
--> STACK GUARD 00000001409bd000-00000001409be000 [ 4K] ---/rwx SM=NUL stack guard for thread 23
Stack 00000001409be000-0000000140a40000 [ 520K] rw-/rwx SM=COW thread 23
Application Specific Information:
ProductBuildVersion: 6A1052d
...
Thread 23 Crashed:: <DBGLLDBSessionThread (pid=7957)>
0 libsystem_pthread.dylib 0x00007fff90eb82cf __mtx_droplock + 17
1 libsystem_pthread.dylib 0x00007fff90eb88f3 pthread_mutex_unlock + 60
2 com.apple.LLDB.framework 0x000000011808f8be lldb_private::Mutex::Locker::~Locker() + 22
3 com.apple.LLDB.framework 0x00000001180ed55f GDBRemoteCommunication::CheckForPacket(unsigned char const*, unsigned long, StringExtractorGDBRemote&) + 2423
4 com.apple.LLDB.framework 0x00000001180ec99e GDBRemoteCommunication::WaitForPacketWithTimeoutMicroSecondsNoLock(StringExtractorGDBRemote&, unsigned int) + 88
5 com.apple.LLDB.framework 0x00000001181eeb1b GDBRemoteCommunicationClient::SendPacketAndWaitForResponse(char const*, unsigned long, StringExtractorGDBRemote&, bool) + 91
6 com.apple.LLDB.framework 0x00000001180f7574 ProcessGDBRemote::DoReadMemory(unsigned long long, void*, unsigned long, lldb_private::Error&) + 216
7 com.apple.LLDB.framework 0x00000001181a452a lldb_private::Process::ReadMemoryFromInferior(unsigned long long, void*, unsigned long, lldb_private::Error&) + 94
8 com.apple.LLDB.framework 0x0000000118171889 lldb_private::ProcessStructReader::ProcessStructReader(lldb_private::Process*, unsigned long long, lldb_private::ClangASTType) + 561
9 com.apple.LLDB.framework 0x0000000118169082 lldb_private::SwiftLanguageRuntime::ClassMetadata::ClassMetadata(lldb_private::SwiftLanguageRuntime&, unsigned long long) + 354
10 com.apple.LLDB.framework 0x000000011816625d lldb_private::SwiftLanguageRuntime::GetMetadataForLocation(unsigned long long) + 531
11 com.apple.LLDB.framework 0x00000001181690d1 lldb_private::SwiftLanguageRuntime::ClassMetadata::ClassMetadata(lldb_private::SwiftLanguageRuntime&, unsigned long long) + 433
12 com.apple.LLDB.framework 0x000000011816625d lldb_private::SwiftLanguageRuntime::GetMetadataForLocation(unsigned long long) + 531
13 com.apple.LLDB.framework 0x00000001181690d1 lldb_private::SwiftLanguageRuntime::ClassMetadata::ClassMetadata(lldb_private::SwiftLanguageRuntime&, unsigned long long) + 433
14 com.apple.LLDB.framework 0x000000011816625d lldb_private::SwiftLanguageRuntime::GetMetadataForLocation(unsigned long long) + 531
15 com.apple.LLDB.framework 0x00000001181690d1 lldb_private::SwiftLanguageRuntime::ClassMetadata::ClassMetadata(lldb_private::SwiftLanguageRuntime&, unsigned long long) + 433
16 com.apple.LLDB.framework 0x000000011816625d lldb_private::SwiftLanguageRuntime::GetMetadataForLocation(unsigned long long) + 531
17 com.apple.LLDB.framework 0x00000001181690d1 lldb_private::SwiftLanguageRuntime::ClassMetadata::ClassMetadata(lldb_private::SwiftLanguageRuntime&, unsigned long long) + 433
18 com.apple.LLDB.framework 0x000000011816625d lldb_private::SwiftLanguageRuntime::GetMetadataForLocation(unsigned long long) + 531
...
There have been many solutions proposed over the years for this kind of bizarre Xcode behavior, so I have included all those steps as well; however, I have added a few of my own that (when done together and in order) have never failed to resolve every weird Xcode issue that I have come across.
PLEASE NOTE: Doing ALL of these steps (in order) can be CRITICAL. I realize that some of them at first glance seem like overkill or like they should not matter, but my experience has shown that each step plays a part in getting Xcode back into proper working order. Therefore, I do NOT recommend skipping any steps or changing their order.
With that said, if you discover the need to tweak the steps below, please do post a comment. Xcode does change constantly so these steps may also need change as well over time.
After Xcode crashes:
If simulator is still running make sure to select IOS Simulator->Reset Content And Settings before closing it.
Close Simulator (CMD-Q)
Window -> Organizer -> Delete derived data
If debugging on ANY devices, delete the app from the device and REBOOT the device completely.
Launch Xcode
Remove All breakpoints
Product -> (hold down Alt/option key) Clean Build Folder
Product -> Clean
Close Xcode again via Xcode->Quit Xcode (NOTE: Must be a GRACEFUL Exit, so Xcode can properly do a complete shutdown/cleanup cycle)
Reboot your Mac
Launch Xcode
If running in simulator, pick a different device to simulate than when it crashed.
Do a test run of your app (with no breakpoints)
If all goes well, start adding a breakpoints (All Exceptions is always a good starting point).
HAIL MARY CLAUSE (a.k.a. "The Corbomite Maneuver"): If doing all the above did not work then re-perform all the above steps again, but insert the following step between steps 9 and 10: 9A) Delete Xcode app and re-install Xcode.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With