2

在我的新 mac mini 上使用 LLDB 调试器时,Xcode 4.6.1 不断崩溃。任何人都可以帮助我发生了什么事吗?可以使用 GDB,但我宁愿使用默认调试器,这样我就不必每次运行/测试新项目时都更改它。

我读过一些关于编辑 /etc/hosts 以拥有 127.0.0.1 localhost 的内容,但它不起作用。

以下是我的 Xcode 崩溃时的一些细节。

Process:         Xcode [220]
Path:            /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier:      com.apple.dt.Xcode
Version:         4.6.1 (2067)
Build Info:      IDEApplication-2067000000000000~2
Code Type:       X86-64 (Native)
Parent Process:  launchd [133]
User ID:         501

Date/Time:       2013-04-04 10:08:23.876 +0800
OS Version:      Mac OS X 10.8.3 (12D78)
Report Version:  10

Interval Since Last Report:          11460 sec
Crashes Since Last Report:           4
Per-App Interval Since Last Report:  5582 sec
Per-App Crashes Since Last Report:   4
Anonymous UUID:                      F7A4E172-EA44-2180-5471-22ADD0DA75A1

Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000

Application Specific Information:
ProductBuildVersion: 4H512
UNCAUGHT EXCEPTION (NSInvalidArgumentException): -[__NSCFString alloc]: unrecognized selector sent to instance 0x4008c2040
UserInfo: (null)
Hints: None
Backtrace:
  0  0x00007fff8ffacaee __exceptionPreprocess (in CoreFoundation)
  1  0x00007fff856553f0 objc_exception_throw (in libobjc.A.dylib)
  2  0x00007fff9004340a -[NSObject(NSObject) doesNotRecognizeSelector:] (in CoreFoundation)
  3  0x00007fff8ff9b02e ___forwarding___ (in CoreFoundation)
  4  0x00007fff8ff9ae18 _CF_forwarding_prep_0 (in CoreFoundation)
  5  0x000000010c2f00a6 -[DBGLLDBDebugLocalService operationWorkerWithLaunchSession:error:] (in DebuggerLLDBService)
  6  0x000000010c3505ba -[IDERuniPhoneSimulatorService operationWorkerWithLaunchSession:error:] (in IDEiPhoneSupport)
  7  0x0000000104c6a017 -[IDERunDestination runOperationForLaunchSession:error:] (in IDEFoundation)
  8  0x0000000104c68c87 -[IDELaunchSchemeAction 
4

1 回答 1

1

它也发生在我身上。Esp 与 SIGABRT 在主课上。有人建议我调试。我确实尝试过 lldb 调试。它适用于一个应用程序。您需要找到哪个寄存器引发错误。要发现你需要先输入调试窗口(只有当它的lldb错误时!)

register read

然后你会发现它在哪个寄存器中被引发的错误。然后遵循以下陈述。如果 eax 是寄存器..

po $eax
po [$eax class]
po [$eax name]
po [$eax reason]

然后你就会知道你必须对代码进行哪些更改。希望对你有效。

于 2013-04-04T03:13:28.433 回答