我无法调试Swift Strings
func stringTest() {
let test1:String = "test1";
let test2:NSString = "test2";
// <-- Breakpoint here
println(test1);
println(test2);
}
如果我在这些行之后设置断点并尝试打印test1,则会出现以下错误:
po test1
error: <REPL>:1:1: error: use of unresolved identifier 'test1'
test1
^
但我能够成功打印test2:
po test2
test2
答案 0 :(得分:17)
这是Beta的错误。 Xcode6-Beta5仍有这个bug。 你只能获得swift变量的调试信息,但不能获得swift的常量。 暂时您可以将让test1 更改为 var test1 ,您将获得调试信息。 希望这将在发布版本中修复。调试好运;)
编辑: 不幸的是,在Xcode Version 6.0.1(6A317)的第一版中仍然存在同样的问题
let test1:String -> debug info is unavailable
var test1:String -> debug info is available
EDIT2: 是的,确认。它也适用于OS X Yosemite下最新Xcode 6.1中的iOS应用程序。
答案 1 :(得分:8)
这很可能是调试信息输出中的错误。您可以通过抓取PC来检查,例如从register read pc
,然后执行:
(lldb) image lookup -va <PC VALUE>
这将打印出一堆东西,但最后的条目将是调试器当前可见的所有变量,以及它们存在的位置(在寄存器或内存中)。如果你没有看到那里的变量,那么调试信息必须告诉lldb该变量当前不存在。
如果您可以在一些示例代码中重现这一点,请提交bug news.apple.com./ / p>