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