Xcode 10,LLDB:无法IRGen表达式

15
使用 Xcode 10,在断点停止我的应用程序并尝试在控制台中打印对象内容时,我会得到以下错误信息:"Couldn't IRGen expression, no additional error"。然而,我可以在变量视图面板中看到对象的值。

enter image description here

我该如何让它评估我的表达式?


2
你使用Carthage吗?我发现一篇文章说,如果框架是二进制文件而不是本地构建的。 - Bill Chan
11
尝试使用命令fr v 变量名。其中,fr是指代"查找引用"的命令,v表示要查找的是变量(variable)的引用,而变量名则需要替换成你所需查找的实际变量名称。 - Kamil.S
@Kamil.S 这个可行!我会找出不同之处。谢谢。 - asclepix
@BillChan,我刚刚重新构建了使用Carthage导入的每个框架,现在甚至po variable也可以工作了,谢谢。 (你能否请发布你提到的文章的链接?) - asclepix
1
https://imtx.me/archives/2719.html - Bill Chan
显示剩余3条评论
5个回答

13

你能提供更多信息,告诉我你在哪里找到它以及它的作用是什么吗? - milo
1
@milo 已添加,希望有所帮助。 - Kamil.S

8
感谢您的提问。
我通过重新构建 Carthage 框架来解决问题,具体步骤可以参考 imtx.me/archives/2719.html。
需要执行以下命令来更新 Carthage 框架: carthage update --platform iOS --no-use-binaries
谢谢。

1
请在您的回答中包含解决问题的 Carthage 命令。 - Kamil.S
问题中没有提到Carthage。 - vahotm

1
我曾把构建系统定义为“Legacy Build System”,现在我把它改成了“New Build System”,然后构建项目,最后我又将其改回“Legacy Build System”,这样就可以再次正常工作了。
更改构建模式的方法:文件->工作区设置...->构建系统。

对我的情况不起作用。我还添加了两个新目标。 - Pallavi Nikumbh

0
我的环境是:Xcode 11.6 和 Xcode 12 Beta 6,使用的 carthage 版本是 0.34.0。
在我的情况下,公司要求我在 Xcode 12 beta 上构建我们的应用程序,找出哪些地方有问题。我这样做时发现了 另一个 bug,这个 bug 损坏了 carthage。通过阅读同一个线程这个答案来解决它。
然后我切换回到 Xcode 11.6,但是错误开始出现了:

error: Couldn't IRGen expression, no additional error

变量检查器正常工作,但是没有 print 或者 po 命令时 debug console 是无用的。在 Stack Overflow 上搜索了一段时间之后,我才意识到这可能与 carthage 有关。然后我使用以下命令更新了所有依赖项。
carthage bootstrap --platform iOS --no-use-binaries --cache-builds 

然后调试恢复正常,我可以再次使用print / po命令


0
对于我的同事来说,carthage update --platform iOS --no-use-binaries 是有效的,但对我来说却不行。当我删除了 Carthage 文件夹并重新运行命令时,po 命令开始工作了。我不确定这是否有关系,但我使用的是 macOS Catalina 10.15.3,而他使用的是 Mojave。我们都使用的是 Carthage 版本 0.34.0。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接