Xcode手表';无效表达式';

Xcode手表';无效表达式';,xcode,cocoapods,lldb,Xcode,Cocoapods,Lldb,我在Xcode中单步浏览一些Swift代码,我想看看这些值。按照这里许多答案中的建议(例如),我可以将表达式添加到“局部变量”窗口 我所在的断点是(by)中该片段的最后一行,我将其作为pod包含 for i in 0..<dataLength { buffer[offset] = data[i] ^ maskKey[i % MemoryLayout<UInt32>.size] offset += 1 } var total = 0 我甚至还删除了豆荚,克隆了红蜘蛛,并

我在Xcode中单步浏览一些Swift代码,我想看看这些值。按照这里许多答案中的建议(例如),我可以将表达式添加到“局部变量”窗口

我所在的断点是(by)中该片段的最后一行,我将其作为pod包含

for i in 0..<dataLength {
  buffer[offset] = data[i] ^ maskKey[i % MemoryLayout<UInt32>.size]
  offset += 1
}
var total = 0

我甚至还删除了豆荚,克隆了红蜘蛛,并将源代码作为一个子项目。我仍然会遇到同样的错误。

当我在某个简单函数中停止时,访问
缓冲区[0]
的表达式(其中缓冲区是一个不可分配的指针)在表达式解析器中正常工作。根据您直接使用expr命令的经验,您的问题似乎不在于这个特定的表达式。更确切地说,它看起来像是关于您所处的上下文的某种东西,完全绊倒了表达式解析器

确保您没有使用二进制cocoapod,并且您已经重建了所有代码,并且您正在使用的所有pod都是使用相同的swift编译器从头开始重建的。目前,lldb和swiftc是版本锁定的——lldb只能调试随附的swiftc构建的程序


如果这不能解决问题,那么我们需要弄清楚导致问题的特定函数是什么。这似乎是最好通过向swift项目()提交bug来解决的问题。

谢谢。如何“确保您没有使用二进制CoCoapod”?IIRC当您安装或更新时,您可以选择下载源代码并重建它们或下载预构建的二进制文件。你必须做前者。但是,我没有使用cocoa pods,因此我不记得详细信息,抱歉。我在podfile中添加了
:configuration=>“Debug”
,但调试表达式仍然失败。
pod 'Starscream', '~> 3.0.6', :configuration => 'Debug'