现在我们可以导入模块了
(lldb) expr @import UIKit
Run Code Online (Sandbox Code Playgroud)
这是什么意思import?导入模块时调试器会发生什么.
我们可以使用它来导入静态库中的一些私有头文件,以及如何?
@import <Framework>在调试器中运行几乎完成了它在源代码中的工作,使得类型和方法签名可用于实现lldb表达式解析器的编译器.
它不会使框架中的代码可用,只是类型,并且它不适用于随机的标头集,仅适用于具有适当模块映射的clang模块.
如果要在调试器的表达式解析器中引入一些内部类型,可以使用表达式前缀设置target.expr-prefix.
下面的示例代码和命令说明了Jim的一些答案:
构架
该框架称为rusty_nails。它在我的iOS应用程序内。
class Hello{
static func world() {
print("hello from a static method")
}
}
Run Code Online (Sandbox Code Playgroud)
调试器命令
使用lldb连接到您的iOS应用。
(lldb) po Hello()
error: use of undeclared identifier 'Hello'
(lldb) exp import rusty_nails
error: unknown type name 'import'
(lldb) settings set target.language swift
(lldb) exp import rusty_nails
(lldb) po Hello()
<Hello: 0x60000001a630>
(lldb) po Hello.world()
hello from a static method
Run Code Online (Sandbox Code Playgroud)
导入lldb的语法
(lldb) expr @import <stdbool.h> // C and Objective-C
(lldb) exp import UIKit // Swift
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2020 次 |
| 最近记录: |