首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcode lldb错误:无法输出Swift变量-获取"$__lldb_injected_self.$__lldb_wrapped_expr_x“

Xcode lldb错误:无法输出Swift变量-获取"$__lldb_injected_self.$__lldb_wrapped_expr_x“
EN

Stack Overflow用户
提问于 2018-01-13 23:54:06
回答 1查看 7K关注 0票数 16

有时,当试图在调试器中打印变量时,会显示以下错误消息:

代码语言:javascript
复制
error: warning: <EXPR>:12:9: warning: initialization of variable '$__lldb_error_result' was never used; consider replacing with assignment to '_' or removing it
    var $__lldb_error_result = __lldb_tmp_error
    ~~~~^~~~~~~~~~~~~~~~~~~~
    _

error: <EXPR>:18:5: error: use of unresolved identifier '$__lldb_injected_self'
    $__lldb_injected_self.$__lldb_wrapped_expr_120(     
    ^~~~~~~~~~~~~~~~~~~~~

这是一个已知的lldb bug (https://bugs.swift.org/browse/SR-6156),但是也许有人知道一个解决方法,可以在修复该bug之前使用它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-14 11:19:40

作为解决办法,您可以使用以下方法在lldb调试器中打印它:

代码语言:javascript
复制
frame variable variablename

也可以使用缩短的语法来加快打字速度。

代码语言:javascript
复制
fr v variablename

由于XCode 10.2支持越来越简单的lldb语法:

代码语言:javascript
复制
v variable

Update -新的解决方案:

打印堆栈地址:

代码语言:javascript
复制
v -L variablename

栈帧上的po类variable.property

代码语言:javascript
复制
 v -o variablename.property

p一样斯威夫特

代码语言:javascript
复制
e unsafeBitCast(address, to: ClassName.self)

Update2 --适用于作为objc类包装器的Swift类的新解决方案。

示例:

代码语言:javascript
复制
v response
(HTTPURLResponse) response = 0x0000000283ba7640 {

如果v有效,则^:

代码语言:javascript
复制
e -l objc -- (int)[0x0000000283ba7640 statusCode]
(int) $2 = 404

我想很感谢的报告,它实际上是有用的和有效的。谢谢。

有关这类功能的更多信息可以在这里找到:https://developer.apple.com/library/content/documentation/General/Conceptual/lldb-guide/chapters/C5-Examining-The-Call-Stack.html

票数 41
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48245427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档