You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Xcode中仅调试自定义代码?排除非自研代码调试咨询

如何在Xcode中仅调试自研代码并从指定行启动调试

嘿,我太懂你这种调试时频繁跳进系统或第三方代码的烦躁了!这就给你一套实用方案,既能屏蔽非自研代码的干扰,又能精准从你指定的代码行开始调试:

一、屏蔽非自研代码,只调试自己写的代码

1. 开启「跳过非项目代码」功能

这是最直接的方法,Xcode自带这个贴心功能:

  • 打开Xcode顶部菜单,选择 Debug > Debug Workflow > Skip Non-Project Code
  • 开启后,调试过程中遇到系统框架(比如UIKit、Foundation)或第三方库的代码时,Xcode会自动跳过,直接停在你自己写的代码断点或执行点上

2. 手动配置忽略的框架(进阶)

如果上面的方法没完全解决问题,你可以手动指定要忽略的框架:

  • 打开Xcode的「Breakpoints」面板(快捷键Cmd+8)
  • 点击左下角的「+」,选择「Symbolic Breakpoint」
  • 在弹窗里,点击「Action」添加一个动作,选择「Debugger Command」,输入 process handle -n "UIKit" -s false -n false -p false(把UIKit换成你想忽略的框架名,比如第三方库的框架)
  • 勾选「Automatically continue after evaluating actions」,这样遇到该框架的代码就会自动跳过

3. 关闭不必要的符号下载

有时候Xcode自动下载的系统调试符号会让你不小心跳进系统代码,你可以:

  • 打开Xcode偏好设置(Cmd+,),进入「Components」标签
  • 找到「Debug Symbols」,取消勾选不需要的系统版本符号,或者直接关闭自动下载

二、从指定代码行开始调试

针对你给出的这段代码:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    CG.setId(indexPath.row) //我希望从这一行开始调试应用
    performSegue(withIdentifier: "sgShowIssue", sender: self)
}

你可以这样操作:

1. 设置行断点

直接在CG.setId(indexPath.row)这一行的左侧 gutter(代码行号旁边的空白区域)点击一下,会出现一个蓝色的断点标记。运行应用后,当用户点击tableView的cell时,代码会自动停在这一行,你就可以从这里开始调试了。

2. 禁用其他无关断点(可选)

如果你的项目里还有其他断点,怕被打断的话:

  • 打开「Breakpoints」面板(Cmd+8)
  • 点击面板顶部的「Deactivate All Breakpoints」按钮(或者用快捷键Cmd+Y),然后再单独激活你刚才设置的那个行断点,这样就只会在指定行暂停

3. 临时跳转调试(已运行时)

如果应用已经在运行,你想临时跳转到这一行调试:

  • 找到目标代码行,右键点击选择「Jump to Line」
  • 注意:这个操作会跳过中间未执行的代码,适合临时调试场景,正式调试还是用断点更稳妥

额外小技巧

调试时,在左侧的「Debug Navigator」(栈帧面板)里,右键点击任意栈帧,选择「Show Only Project Code」,可以快速过滤掉非自研代码的栈帧,让调用栈更清晰。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:09:43