微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

LLDB中的po与swift

如何在使用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在哪里找到你的“自我”对象。鉴于Swift的本质,LLDB需要知道自我的类型,以便能够在本地作用域内插入一个表达式
找到这是你的问题的一种方法是在LLDB提示符处:

(lldb)帧变量-L self

你可能不会看到它的位置。值得提交的错误报告,只是为了跟踪你的具体繁殖情况

无论如何,要得到你的问题的大部分。在Swift中,没有像ObjC这样的“打印描述”的语言制裁机制,所以虽然你可以键入“po self”,除非self是一个Objective-C类型,你几乎看到同样的事情, “甚至”帧变量自我“会告诉你 – 这完全基于LLDB数据格式化机制。如果你想钩住自定义Swift对象的外观,强制引用是:http://lldb.llvm.org/varformats.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐