XCode 6.1和6.1.1在debugging器断点(模拟器)上崩溃

我像其他许多人一样,在XCode 6+崩溃时遇到了问题。 我得到的SourceKit崩溃以及完整的应用程序崩溃。 一时兴起,我想我会尝试6.1.1(开发人员中心),情况更糟,debugging器断点现在导致一个完整的应用程序崩溃。 所以我说忘记它,并回到6.1,但是当我把一个debugging器断点时,我仍然崩溃。

显然这个带有断点的崩溃只影响模拟器,物理设备的设置和停止在断点处没有问题。 奇怪的!

这是绝对疯狂! 任何人得到这个?

我试过的东西:

  • 删除/Application/Xcode.app/&〜/ Library / Developer / *
  • 清理项目
  • 重新启动笔记本电脑
  • 在物理设备上执行的断点(<<<< ======这是可行的!!!)
  • 屠宰一只鸡,并将其血液全部传播

堆栈跟踪的头:

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 

多年来为这种奇怪的XCode行为提出了许多解决scheme,所以我也包括了所有这些步骤…但是,我已经添加了一些我自己的(如果一起完成并按顺序)从来没有未能解决我遇到的每一个奇怪的XCode问题…

请注意:做所有这些步骤(按顺序)可以是关键…我知道他们中的一些乍看起来似乎是矫枉过正或像他们应该不重要,但我的经验表明,每一步都起到了一部分获得XCode恢复到正确的工作状态。 因此,我不build议跳过任何步骤或更改顺序。

有了这个说法,如果你发现需要调整下面的步骤,请发表评论… XCode不断变化,所以这些步骤也可能需要改变,以及随着时间的推移。

XCode崩溃之后:

1)如果模拟器仍在运行,请确保在closures之前selectIOS模拟器 – >重置内容和设置。

2)closures模拟器(CMD-Q)

3)窗口 – >pipe理器 – >删除派生数据

4)如果在任何设备上进行debugging,请从设备上删除应用程序,然后重新启动设备。

5)启动XCode

6)删除所有的断点

7)产品 – >(按住Alt /选项键)清理生成文件夹

8)产品 – >清洁

9)再次通过XCodeclosuresXCode – >退出XCode(注意:必须是GRACEFUL退出,所以XCode可以正确地执行完整的closures/清理周期)

10)重新启动你的Mac

11)启动Xcode

12)如果在模拟器中运行,select一个不同的设备进行模拟,而不是模拟器崩溃。

13)做一个testing你的应用程序(没有断点)

14)如果一切顺利的话,开始添加一个断点(所有exception总是一个好的起点)。

HAIL MARY条款(又名“Corbomite操作”) :如果以上所有操作都不起作用,请重新执行上述所有步骤,但在步骤9和10之间插入以下步骤:9A)删除XCode应用程序并重新安装XCode中。