Xcode 6.4中的Swift LLDB不打印框架内任何局部变量的值。 这是我到目前为止所发现的。
(lldb) frame variable --no-args
cell = <Unable to determine byte size.>
(lldb) register read pc // get the current program counter value
rip = 0x00000001072177cf
(lldb) image lookup -va 0x00000001072177cf
Variable: id = {0x000a93a7}, name = "cell", type= "<NULL>", location = DW_OP_fbreg(-64), decl = CustomCollectionViewCell.swift:321
似乎无法找到类型。
(lldb) image lookup -t CustomCollectionViewCell
(lldb)
我可以看到包含该类型的图像已加载。
(lldb) image list
...
/path/to/CustomFramework
此外,该文件还包含符号。
$strings /path/to/CustomFramework | grep CustomCollectionViewCell
_TtC17CustomFramework24CustomCollectionViewCell
我似乎有以下调试符号:
(lldb) script lldb.target.module['/data/Containers/Bundle/Application/23A3AF01-4F87-439F-B2F7-36E7BD09390B/MyApp.app/Frameworks/CustomFramework.framework/CustomFramework'].GetNumCompileUnits()
74
此外,已编译的swift文件的目标文件具有变量和类型。
$ dwarfdump /path/to/FileUsingCell.o
0x00003140: TAG_variable [44]
AT_location( fbreg -8 )
AT_name( "cell" )
AT_decl_file( "CustomCollectionViewCell.swift" )
AT_decl_line( 324 )
AT_type( {0x0000133d} ( CustomCollectionViewCell ) )
我仍然无法查找该类型。
我已经检查过在复制阶段没有发生条带化,并且发布是调试的。
有什么想法吗?我很感激任何帮助。