4

我今天一直在开发一个应用程序,并且能够调试它。突然之间,我无法在 Xcode 5.1 崩溃的情况下使用断点。它将在断点处停止,看起来它正试图在左下角的窗口中显示局部变量,然后崩溃。

这是崩溃报告:

Process:         Xcode [8084]
Path:            /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier:      com.apple.dt.Xcode
Version:         5.1 (5084)
Build Info:      IDEFrameworks-5084000000000000~21
App Item ID:     497799835
App External ID: 444172641
Code Type:       X86-64 (Native)
Parent Process:  launchd [189]
Responsible:     Xcode [8084]
User ID:         294396280

Date/Time:       2014-04-03 14:57:52.981 -0600
OS Version:      Mac OS X 10.9.2 (13C64)
Report Version:  11
Anonymous UUID:  5BFD5C24-5465-3BC8-137A-4BF1A8D48B38

Sleep/Wake UUID: F94AB6A7-9517-4F94-93DA-CC2C9154C8A7

Crashed Thread:  30  DBGLLDBSessionThread

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

Application Specific Information:
ProductBuildVersion: 5B130a
Assertion failed: (!isNull() && "Cannot retrieve a NULL type pointer"), function getCommonPtr, file /SourceCache/lldb/lldb-310.2.36/llvm/tools/clang/include/clang/AST/Type.h, line 547.

(如果有帮助,我可以提供线程正在做什么的报告的其余部分)。

我在代码中的各种文件和位置放置了断点。我可以在某些地方使用断点,但大多数断点会导致崩溃。

我浏览了几个 SO 页面,但没有运气。除其他外,我尝试删除所有断点并重新添加 1。我已删除并重新生成方案。

有任何想法吗?

我更新到 5.1.1。问题仍然存在:

Process:         Xcode [19072]
Path:            /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier:      com.apple.dt.Xcode
Version:         5.1.1 (5085)
Build Info:      IDEFrameworks-5085000000000000~10
Code Type:       X86-64 (Native)
Parent Process:  launchd [197]
Responsible:     Xcode [19072]
User ID:         294396280
4

2 回答 2

0

我碰巧有两部通过 USB 连接的 iPhone(一部带有 iOS 7.1 的 4 部和一部带有 iOS 7.1.1 的 5 部),而 Xcode 5.1.1 在第一个断点处对我来说是“沙滩球”,无论它可能在哪里,先命中哪个断点。

刚刚从 USB 断开 iPhone 4。

我可以再次使用断点:)

YMMV 当然...

于 2014-04-27T19:01:53.463 回答
0

我最近也遇到了同样的 LLVM 错误:

断言失败:(!isNull() && "无法检索 NULL 类型指针"),函数 getCommonPtr

在我的例子中,它是一段代码,我在另一个对象中存储了一个枚举值(权限)作为引用,而不是一个值:

正确

@property(nonatomic, readwrite) Permission permission;

错误

@property(nonatomic) Permission *permission;

通过运行 Xcode 的代码分析,我能够缩小问题的范围。在对每个类中的一个或多个警告进行更正后,我将重新运行分析,然后测试并提交。乏味但有效,现在我可以再次正确调试。希望这有助于引导某人朝着正确的方向前进。

于 2015-08-06T15:24:33.113 回答