有时,当试图在调试器中打印变量时,会显示以下错误消息:
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之前使用它?
发布于 2018-01-14 11:19:40
作为解决办法,您可以使用以下方法在lldb调试器中打印它:
frame variable variablename也可以使用缩短的语法来加快打字速度。
fr v variablename由于XCode 10.2支持越来越简单的lldb语法:
v variableUpdate -新的解决方案:
打印堆栈地址:
v -L variablename栈帧上的po类variable.property
v -o variablename.property像p一样斯威夫特
e unsafeBitCast(address, to: ClassName.self)Update2 --适用于作为objc类包装器的Swift类的新解决方案。
示例:
v response
(HTTPURLResponse) response = 0x0000000283ba7640 {如果v有效,则^:
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
https://stackoverflow.com/questions/48245427
复制相似问题