我知道一个Swift函数的名字,并想从LLDB调用该函数进行调试.

我试着做:

expr -- function_with_a_breakpoint()

这会运行函数并正确解析,但不会达到我设置的断点.理想情况下,我希望从LLDB内部触发,而不必手动从应用程序UI触发函数.这样会更方便.

推荐答案

Swift functions with breakpoints in LLDB ????

我把这个答案加上了额外的注释,因为当我们想要到达断点时,通常会从LLDB触发一个Swift函数.

我喜欢在LLDB中管理断点,因为我不会中断Xcode和控制台之间的流程.

触发函数????

你问题的答案在这里.我们必须设置-i标志以触发来自LLDB的函数:

(lldb) expr -i 0 -- function_with_a_breakpoint()

编程断点

我们通常使用LLDB中的函数触发器手动触发断点.

如果我们想在函数上设置断点,并且知道其名称:

(lldb) breakpoint set -n function_with_a_breakpoint

使用文件名和行号:

(lldb) breakpoint set --file foo.swift --line 12
// copy the breakpoint number into the modify command below

我们还可以使用--one-shot标志一次性创建断点.

(lldb) breakpoint modify --one-shot 1

prize 工作流程说明????

流程示例:

(lldb) run
(lldb) kill
... hit breakpoints...
(lldb) continue

在上面的例子中,我们可以在kill后触发函数.

Swift相关问答推荐

什么是Swift Concurrency中任务组的正常退出

Swift 5.10:无法从非隔离的deinit访问属性*,这是Swift 6中的错误''''

";async let和";async之间的差异让我们等待";

为什么第二项任务不在第一项任务完成之前开始?(并发队列)

在Xcode SWIFT中运行用Ionic编写的函数

在不传递参数的情况下使用Init方法?

如何异步返回视图?什么?

KMM-Swift铸造密封类

我如何在 swift 中的 viewdidload 之前进行委托?

带有可选字符串作为键路径的 SwiftUI iOS16 表

如何将视图添加到多行文本视图的末尾?

如何在 RxSwift 中获取 controlEvent 类型?

如何让 UIKit 挤压你的视图,使其适合屏幕

iOS 判断应用程序是否可以访问麦克风

在 Xcode 中自动实现 Swift 协议方法

在 unwind segue 之后执行 push segue

Swift 中的可选数组与空数组

iPhone 纵向和 iPad 横向的通用应用程序

Swift3 中的 NSIndexPath 初始化有何变化?

带有默认值的 Swift 可选变量赋值(双问号)