繁体   English   中英

在lldb中切换到Objective-C模式

[英]Switch to Objective-C mode in lldb

当我用Xcode调试Swift应用程序时,调试器期望Swift格式的表达式。 如何将其切换为期望使用Objective-C表达式?

例如,我希望能够键入expr id $foo = [[SomeClass alloc] initWithBar:@"quux"]; 而不是Swift的等效形式。

Swift 3.0或使用前:您可以使用以下命令来标识LLDB中所有可用语言的名称。

(lldb)帮助<语言>

迅捷4.0

(lldb)帮助<源语言>

创建一个类似“ eco”的别名以打印Objective-C对象:

(lldb)command alias eco expression -l objective-c -o --
(lldb)eco [[UIApplication sharedApplication] userHomeDirectory] 
/Users/...

从WWDC 2018 使用Xcode和LLDB进行的高级调试表明,可以使用以下命令完成此操作:

expression -l objc -O -- [doYourStuff here]

但是要注意的是,从Swift切换到Objective C框架会创建一个新上下文 实际上,这意味着您可能会遇到类似以下的错误:

error: use of undeclared identifier 'self'

为了避免这个问题,你需要附上任何varables,那需要上下文改变之前进行评估,在反引号` 例如:

expression -l objc -O -- [`self` class]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM