XCode 6.1 and 6.1.1 Crashes on Debugger Breakpoint

2020-02-23 08:06发布

问题:

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:

  • remove /Application/Xcode.app/ & ~/Library/Developer/*
  • cleaning the project
  • rebooted my laptop
  • breakpoint for execution on a physical device (<<<<====== This works!!!)
  • slaughtering a chicken and spreading it's blood all over

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

...

回答1:

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:

1) If simulator is still running make sure to select IOS Simulator->Reset Content And Settings before closing it.

2) Close Simulator (CMD-Q)

3) Window --> Organizer --> Delete derived data

4) If debugging on ANY devices, delete the app from the device and REBOOT the device completely.

5) Launch XCode

6) Remove All breakpoints

7) Product --> (hold down Alt/option key) Clean Build Folder

8) Product --> Clean

9) Close XCode again via XCode->Quit XCode (NOTE: Must be a GRACEFUL Exit, so XCode can properly do a complete shutdown/cleanup cycle)

10) Reboot your Mac

11) Launch Xcode

12) If running in simulator, pick a different device to simulate than when it crashed.

13) Do a test run of your app (with no breakpoints)

14) 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.