gpt4 book ai didi

swift - 使用 swift 在 LLDB 中使用 po

转载 作者:IT王子 更新时间:2023-10-29 05:02:47 27 4
gpt4 key购买 nike

如何使用 LLDB 在 Swift 应用程序中绘制变量值?

之前是po variable_name

现在我通常会遇到一些讨厌的错误,比如:

(lldb) po a
error: <EXPR>:11:5: error: use of unresolved identifier '$__lldb_injected_self'
$__lldb_injected_self.$__lldb_wrapped_expr_2(
^

最佳答案

这个错误听起来可能是因为 DWARF 没有告诉 LLDB 在哪里可以找到你的 self 对象。鉴于 Swift 的性质,LLDB 需要知道 self 的类型,以便能够在本地范围内注入(inject)表达式。找出这是否是您的问题的一种方法是在 LLDB 提示符下执行:

(lldb) frame variable -L self

您可能看不到它的位置。值得填写错误报告,只是为了跟踪您的特定重现案例。

无论如何,要解决您的大部分问题。在 Swift 中,没有像 ObjC 那样的语言认可的“打印描述”机制,因此虽然您可以键入 po self,但除非 self 是 Objective-C 类型,否则您会看到几乎相同的内容“p self”甚至“frame variable self”会告诉你的事情 - 这完全基于 LLDB 数据格式化程序机制。如果你想连接到它来自定义你的 Swift 对象的外观,强制性引用是:http://lldb.llvm.org/varformats.html

关于swift - 使用 swift 在 LLDB 中使用 po,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24785567/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com