面试题答案
一键面试- 基本步骤:
- 构建项目:在Xcode中,确保项目成功构建。如果构建过程中有错误,可能无法正确生成调试符号。可以通过点击Xcode左上角的“Build”按钮来构建项目。
- 启动调试会话:点击Xcode左上角的运行按钮(三角形图标),在模拟器或真机上启动应用程序。应用程序启动后进入调试状态。
- 使用断点:
- 设置断点:在Xcode的源代码编辑器中,点击代码行号旁边的空白区域,会出现一个蓝色箭头,表示设置了一个断点。当程序执行到这一行时,会暂停执行,方便查看当前上下文信息。
- 条件断点:对于更复杂的调试场景,可以设置条件断点。右键点击断点箭头,选择“Edit Breakpoint”,在弹出的窗口中可以设置条件,只有当条件满足时,断点才会触发。
- 查看调试符号:
- 调试导航器:当断点触发程序暂停时,打开调试导航器(快捷键Command + 6)。在这里可以看到调用栈,即函数调用的层级关系。每个栈帧对应一个函数调用,通过点击栈帧,可以查看该函数调用时的具体上下文,包括参数值、局部变量等。
- 符号表:Xcode会自动加载和解析调试符号。如果符号没有正确加载,可以在“Debug”菜单中选择“Debug Workflow” -> “Reload Symbols”。此外,在“Build Settings”中,确保“Generate Debug Symbols”选项设置为“Yes”,这会在构建时生成调试符号文件(.dSYM)。
- 使用LLDB调试器:
- LLDB控制台:断点触发后,在Xcode底部的调试区域可以找到LLDB控制台。可以在控制台中输入LLDB命令,例如“po”(打印对象)命令来查看变量的值。例如,如果有一个变量
let myString = "Hello"
,在LLDB控制台输入po myString
,会输出Hello
。 - 使用
bt
命令:在LLDB控制台输入bt
命令,可以打印当前的调用栈,与调试导航器中的调用栈信息类似,但以文本形式呈现,方便查看具体的函数调用层级和参数。
- LLDB控制台:断点触发后,在Xcode底部的调试区域可以找到LLDB控制台。可以在控制台中输入LLDB命令,例如“po”(打印对象)命令来查看变量的值。例如,如果有一个变量