You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Xcode中查看当前运行的代码行(无需断点,需执行记录)

在Xcode中无断点追踪代码执行路径的方法

当然有办法!在Xcode里不用断点也能追踪已执行的代码行、生成执行记录列表,我给你分享几个实用的官方方案:

1. 使用Xcode Instruments的System Trace工具

这是最全面的系统级追踪方案,能帮你完整查看代码执行路径:

  • 启动你的App时,点击Xcode顶部菜单栏的 Product > Profile(快捷键Cmd+I);
  • 在弹出的模板选择窗口中,选择System Trace
  • 开始录制后正常操作App,结束录制后,在结果面板找到你的App进程,展开后就能看到所有执行过的代码调用栈,还能按时间线查看代码的执行顺序。你可以通过过滤功能,只显示特定文件或方法的执行记录,快速定位关心的代码行。

2. 用OSLog + Signposts做定制化执行记录

如果想要更轻量、自定义的执行追踪,可以用Apple官方的日志API标记代码执行节点:

  • 首先在代码中导入头文件:import os.log
  • 定义专属的日志对象:
    private let executionLogger = OSLog(subsystem: "com.yourcompany.yourapp", category: "ExecutionTrace")
    
  • 在你想追踪的代码段前后添加标记:
    os_signpost(.begin, log: executionLogger, name: #function)
    // 这里是你要追踪的代码逻辑
    os_signpost(.end, log: executionLogger, name: #function)
    
  • 打开Xcode的控制台(快捷键Cmd+Shift+C),点击右上角的过滤按钮,选择你定义的subsystem和category,就能看到所有标记的执行记录,包括每个方法的开始/结束时间,相当于生成了一份清晰的执行路径列表。

3. 利用Debug Navigator的Call Stack History

如果只是想快速回溯最近的代码执行路径,可以用这个方法:

  • 当App处于运行状态时,打开Xcode左侧的Debug Navigator(快捷键Cmd+7);
  • 点击顶部的「Call Stack History」按钮(图标是一个小时钟),这里会记录最近的调用栈历史,虽然不是逐行的执行记录,但能帮你快速了解代码执行的关键路径,知道当前代码运行到了哪个环节。

这些方法都不需要设置断点,完全靠运行时生成的记录来帮你追踪代码位置,根据你的需求选合适的就好~

内容的提问来源于stack exchange,提问作者Hunter

火山引擎 最新活动