在IOS中进行调试

大家好,我所有的IOS开发人员! 我们所有人都使用调试来发现错误以纠正它们,或者知道在我们编写的代码的底层发生了什么。

当我学习Objective-C时,对于IOS开发,我的一个朋友说,如果您成为一个优秀而高效的调试器,您将成为一个出色的程序员。 当我开始第一份工作后,很快我意识到了调试的重要性。 有时,我们需要在公司中调试其他人的代码,以了解他们的代码的逻辑和内幕。

从Apple Documents:

调试工作流程分为五个部分:

  • 发现。 找出问题。
  • 定位。 确定在代码中出现问题的位置。
  • 检查。 检查正在运行的代码的控制流和数据结构以查找问题的原因。
  • 固定。 将您的见解应用于问题原因以设计解决方案,并编辑适合的代码。
  • 确认。 编辑后,运行该应用程序并使用调试器进行检查,以确保修复成功。

->看下面的图片,熟悉调试工具,在Xcode上可以找到它们。

  1. 断点:我们使用它们来暂停应用程序,同时运行检查变量或了解我们编写的代码如何执行。

在断点调试中,我们主要使用“调试/运行”,“跳过”,“进入”和“退出”按钮,它们位于“调试”栏上。

  • >移入按钮有助于移入当前正在执行的方法。
  • >跳出按钮可以帮助跳过当前方法并移至源代码管理中的下一行。

-> Step-Over将执行当前代码行,如果该行中有任何func / method,它也会执行该代码并移至代码的下一行。

->使用断点运行时,我们可以在Xcode的源代码文件上的任意位置单击鼠标右键,然后,如果选择“ continue to here ”,执行流程将在您单击的地方停止。 这样,您可以避免许多断点并更快地分析代码。

2.在Debug Navigator中,它形成一个调用堆栈,该堆栈将执行过程中的每个方法添加到断点命中为止,然后我们可以从正在执行的当前方法上进行任何级别的检查,以检查上一个步骤中发生了什么。代码行/方法。 它仍然显示与先前方法中使用的变量相同的值,这有助于通过发现问题进行调试。

3.如果我们要检查任何UIComponent的错误,可以使用Debug-hierarchy按钮,该按钮以3D视觉形式向您显示所有IBdesigned子视图,以检查视图的参数,视图层次结构等。


在调试中,我们通常通过->

  1. 发现错误2.找到错误3.检查代码4.修复错误并5.确认过程。

Xcode中有许多类型的调试断点。 要查看列表,请通过单击左侧面板中的调试导航器来选择调试导航区域。 然后按一下底部左侧的+图标,以查看可用的断点类型。

异常断点:

->>在我们的开发中很多时候,我们都会在红色突出显示的行中看到“ Thread1:signal SIGABURT… ”之类的错误。 这可能会导致我们的代码出现异常。 例如,使用已存在的索引路径在表视图中插入新行。 对于这类异常,我们可以使用异常断点,该断点在发生异常的行中暂停执行。 一件很棒的事情是,通过与Xcode用户一起保存,我们可以在所有项目中使用这些异常的断点。 这样,在我们所有的项目中,只要发生异常,断点就会暂停执行。 您可以在Xcode中启用或禁用该断点。 我们要做的就是将异常断点移动到Xcode中的用户帐户。

  • >我们可以通过在断点导航区域中右键单击断点,然后选择共享来共享断点。 然后,该断点也将与远程代码一起附加(也将其推送到服务器),以便您的团队成员可以在此处检查代码以获取解决方案。

->>只需添加一个断点,右键单击它,然后选择edit breakpoint,它会显示一个弹出式窗口,其中包含{condition,Ignore 、、 action和options}。 实际上,我们可以选择以下其中一种。

如果选择Debugger命令,则可以像在调试控制台中一样提供命令(po array.count)。 选择操作类型后,您也会看到提示。 如果选择“日志消息”,则可以按照提示进行操作,以在调试控制台区域中查看该日志。 如果只想查看记录的消息,则可以通过单击并在调试控制台左下方的All Output:按钮上进行选择进行过滤。

>>>>符号断点:

在符号断点中,您可以添加一种方法,您要在“符号”字段中进行检查。 在模块中,您可以定义可用文件的模块名称。 在“条件”字段中,您可以放置​​条件,因此当条件满足时,执行将在此处停止。

在调试控制台中,我们可以使用{ popfr v }命令从调试控制台传递表达式。 这里的“ P”是表达式的别名,因此通过传递带有这些前缀的表达式,您的控制台将充满代码演变的结果。 “ fr v”->框架变量,不会将执行移到您提供的表达式上,而是显示方法的实际状态。

以后将针对IOS调试提出更详细的说明。

感谢您到目前为止的阅读!

有关调试的更多信息:

  1. 苹果文件
  2. Ray Wenderlich教程
  3. 乌迪米
  4. https://digitalleaves.com/how-to-debug-ios-apps-xcode-debugger/