LLDB-QuickLook 是一个调试器命令,用于使用 Quick Look 打开图像、视图等。这个命令非常适合查看调试控制台字符串不好表示的对象。这个命令受到了 Xcode 新的快速查看功能的启发,但有两点改进:
1.) 您可以检查通过 lldb 表达式可以访问的任何对象,而不仅仅是 Xcode GUI 中可用的对象。2.) 通过实现简单的数据提供程序协议,您可以检查任何类型的对象,而不仅仅是 UIImages。
这个命令非常简单。它会询问您的程序中的一个对象要调试数据,将这些数据保存到您计算机上的一个临时文件中,然后使用 Finder 和 Quick Look 打开该文件。
.lldbinit
文件复制到您的家目录(或将这些行追加到现有的 .lldbinit
中)。.lldbinit
文件中更新 lldb_quick_look.py
的路径,以匹配脚本在您的机器上的位置。DataProviders
目录添加到您的 Xcode 项目中。LLDB-QuickLook 需要 Xcode 5 或更高版本。当您的程序在断点处暂停时,在 lldb 中调用
quicklook <对象>
或 ql <对象>
将要求对象提供其 quickLookDebugData
,并将其保存到对象的 quickLookFilename
中。文件将保存到 /tmp/<目标>
之下,并使用 Finder 和 Quick Look 打开。您可以通过简单地实现 quickLookDebugData
和 quickLookFilename
方法将任何对象变成 Quick Look 数据提供程序。在 DataProviders
目录中可以找到针对 NSObject
、UIImage
、UIView
、NSData
和 NSString
的简单数据提供程序实现。
(lldb) quicklook self.imageView.image
(lldb) ql [[UIApplication sharedApplication] keyWindow]
(lldb) quicklook -f some_object.json -- [self jsonString]
(lldb) ql -l self.view
提示:在 lldb 提示符中键入 help quicklook
以查看命令的选项。
quicklook
使用 lldb 强大的(但文档不佳的)Python 脚本桥接。我通常不写 Python 代码,所以如果我掺入了 Objective-C 风格的约定,请谅解。如果您有任何想法、评论或反馈,请关注我的推特 @ryanolsonk,接受拉取请求!