首页 > 解决方案 > 让断点打印调用函数的名称

问题描述

我想让我的断点打印在控制台中调用它的测试的名称。这可能吗?

相关地,我可以让断点条件取决于哪个函数让我们到达断点?

标签: swiftxcodedebugging

解决方案


虽然不完全是“函数”名称,但您可以使用lldb's 命令尽可能远地打印调用堆栈。

在 Xcode 中创建一个带有“调试器命令”操作的断点bt 2(2 限制了要打印的调用堆栈的深度)。如果您不希望断点实际停止处理,请勾选底部的“自动继续...”选项。

使用断点操作设置 lldb 命令

当断点被命中时,您将在 Xcode 窗口底部的“调试区域”中的“调试器输出”窗格中看到与此类似的输出。

来自 bt 的 lldb 输出

* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
  * frame #0: 0x0000000104982fa8 SharingTest`DataManager.loadFromDisk(self=0x000060800005e3f0) at DataManager.swift:66
    frame #1: 0x0000000104998dbe SharingTest`AppDelegate.applicationDidBecomeActive(application=0x00007fe6b9600220, self=0x000060400005b2d0) at AppDelegate.swift:56

推荐阅读