我正在Xcode中浏览一些Swift代码,并且想要查看变量的值。根据许多答案(例如这个)中的建议,我可以将表达式添加到本地变量窗口。
我打的断点是来自Starscream库(由daltoniam创建)的这个片段的最后一行,该库我作为一个pod包含在我的项目中。
我打的断点是来自Starscream库(由daltoniam创建)的这个片段的最后一行,该库我作为一个pod包含在我的项目中。
for i in 0..<dataLength {
buffer[offset] = data[i] ^ maskKey[i % MemoryLayout<UInt32>.size]
offset += 1
}
var total = 0
我已经添加了两个表达式来观察:
buffer[0]
MemoryLayout<UInt32>.size
对于这两个值,我看到的结果都是“无效表达式”:
很明显这些表达式并不是无效的。如果它们无效的话,那么在执行前面的几行时就会抛出异常。我错过了什么?我该如何观察而不会得到“无效表达式”的结果?
注意:如果我从lldb提示符中调用p buffer[0]
,我会得到晦涩的错误信息:
(lldb) p buffer[0]
error: warning: :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: :19:5: error: value of type 'WebSocket' has no member
'$__lldb_wrapped_expr_72' $__lldb_injected_self.$__lldb_wrapped_expr_72( ^~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~
我尝试过改变podfile(按照Jim的答案),以使它明确获取调试代码:
pod 'Starscream', '~> 3.0.6', :configuration => 'Debug'
我甚至已经尝试过移除Pods,克隆Starscream,并将其作为子项目包含源代码,但仍然出现相同的错误。
:configuration => 'Debug'
,但调试表达式仍然失败。 - dumbledad