【问题标题】:LLDB "Fix-it applied" seems to be incorrect about what I wanted to printLLDB“Fix-it applied”似乎对我想要打印的内容不正确
【发布时间】:2019-03-24 14:06:24
【问题描述】:

我正在使用 Xcode 10 和 Swift,我的代码中有一个断点:

    let logoWPoints = logoUIImage.size.width
    let logoHPoints = logoUIImage.size.height
    let logoScale = logoUIImage.scale
    let logoWPixels = logoWPoints * logoScale
    let logoHPixels = logoHPoints * logoScale // <--- breakpoint

我在 LLDB 的控制台中输入“print logoWPoints”导致错误:

(CGFloat) $R0 = 281 Fix-it 已应用,固定表达式为: logoWPixels

错了!我想要 logoWPoints 就像我输入的一样。我最近一直在看这个。有什么关系?

更新 - 当我在 LLDB 中使用帧变量命令时,我可以看到 logoWPoints 不可用的消息:

(CGFloat) logoWPoints = 变量不可用

奇怪的是,如果我打印出等于 (logoUIImage.size.width) 我得到的结果就好了。那为什么它说它不可用?

【问题讨论】:

  • 我不知道 print 命令在 LLDB 中做了什么。 p logoWPoints 怎么样?
  • 据我所知,这是同样的事情,我得到了同样的修复信息。

标签: swift xcode lldb


【解决方案1】:

对于导致返回与“已应用修复”消息相关的“变量不可用”消息的问题已有答案,该消息与编译器优化有关。

对于那些遇到 Fix-it 问题的人,请参阅此答案以了解详细信息:lldb error: variable not available

【讨论】:

  • 所以答案是您试图调试发布版本?如果是这样,也许只是删除问题,因为它是一个纯粹的重复。
  • 如果有人收到修复信息但不知道原因,他们可能很难找到答案。
  • 是的,好点。不幸的是,我认为您不能真正将这个答案作为另一个问题的答案发布,因为审查队列的忙碌者会将其作为“我也是”的答案关闭。所以让我们换一种方式:如何改进您的答案,使其不仅仅是链接,并明确指出您的错误是调试优化的构建?
  • 我将重新制定我的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多