Swift Xcode 11条件断点不起作用

问题描述 投票:0回答:2

我正在尝试在XCode中添加符号断点,以检查后台线程上的UI引擎修改。

我正在做的是以下事情:

enter image description here

但是,我总是收到错误消息:

Stopped due to an error evaluating condition of breakpoint 5.1: "!Thread.isMainThread"
Couldn't parse conditional expression:
error: use of undeclared identifier 'Thread'

UI Engine must be modified on main thread.

我不明白为什么断点条件不能评估我的条件。有人可以在这里解释我可能做错了什么吗?我也尝试过将它放在Obj-c中,但是没有运气。

编辑:Obj-C版本,在这里:!(BOOL)[NSThread isMainThread]

编辑2:Xcode版本11.3(11C29)

编辑3:好的,因此,关闭XCode并重新打开已经使Obj-C版本“正常运行”,它们在断点处停顿了大约4至5分钟。这实际上使这些断点不可用。不确定如何解决此问题。

swift xcode breakpoints
2个回答
1
投票

通过将条件写为],我能够使您的原始符号断点按预期方式工作>

(BOOL)[NSThread isMainThread] == NO

[我怀疑有更好的方法,直接将BOOL与NO进行比较是非常糟糕的样式,但是至少它使我从“不工作”阶段过渡到“工作了”阶段。


0
投票

为澄清起见,设置符号断点并使用条件确实可以,但是我会冒昧地指出,在大多数UIKit框架中,self和Thread都不可用作符号,因为对于大多数工具包,没有可用的调试信息,因此会出现错误:使用未声明的标识符'Thread'。

© www.soinside.com 2019 - 2024. All rights reserved.