【发布时间】:2015-01-23 22:42:34
【问题描述】:
我和其他许多人一样,遇到过 Xcode 6+ 崩溃的问题。我得到 SourceKit 崩溃以及完整的应用程序崩溃。一时兴起,我想我会尝试 6.1.1(开发人员会员中心),但更糟糕的是,调试器断点现在会导致应用程序完全崩溃。所以我说算了,回到 6.1,但是我在调试器断点的时候还是会崩溃。
显然这种断点崩溃只影响模拟器,物理设备设置和停止在断点处没有问题。奇怪!
这绝对是疯了!其他人得到这个?
我尝试过的事情:
- 删除 /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
...
【问题讨论】:
-
“杀鸡并把它的血洒满”这确实应该奏效。什么样的鸡?
-
更认真,请在这里尝试我的回答:stackoverflow.com/a/6247073/341994 最后的两个编辑特别重要。 Xcode 维护了一些邪恶的缓存,这些缓存可能会变得损坏/陈旧,将它们吹走会有很大帮助。
-
感谢您的建议。我尝试了所有的清理,但问题仍然存在。我用更多细节更新了我的问题,并且刚刚发现这只发生在模拟器上。物理设备不会使调试器断点崩溃。
-
你是否删除了所有断点,只设置了一个?当然,你应该提交一个错误。
-
我撒谎了,它确实会在手机上崩溃。这是一个非常具体的断点,它同时使 xcode 6.1 和 6.1.1 崩溃。啊啊啊啊啊!!!
标签: ios xcode crash ios-simulator xcode6