深入了解Xcode 7——调试

做程序员,要相信bug无处不在的真理。

我们在查找bug的过程,就叫调试(debugging)。

 

0x01 暴力测试

暴力测试是最简单的。

在程序中写入输出语句(如printf、NSLog等)来输出程序中的控制流程和一些数据,这就是暴力测试。

对于小系统或者刚刚学习的新系统,暴力测试非常有用。

 

0x02 Xcode的调试器

Xcode有一个调试器(debugger)。

它可以中断程序,让我们在程序运行过程中检查程序的数据甚至修改程序,完成后可以恢复程序运行并查看结果。

它还让我们可以单步执行代码,减缓程序运行速度,细致地查看代码会如何对数据进行改动。

Xcode还有一个提供大量概述信息的调试窗口,以及一个可以直接向调试器发送调试命令的调试控制台(Console)。

 

0x03 开始调试

设置断点Breakpoint

断点是调试工作中必不可少的工具。

点击代码编辑区的左侧边栏,可以在当前鼠标所在行设置一个断点,Xcode用蓝色箭头标签标示。

不需要断点的话可以单击蓝色标签使它失效,也可以直接拖出边栏删掉。

深入了解Xcode 7——调试_第1张图片

 

运行程序

点击播放箭头,Xcode会先编译程序,如果编译通过,则显示Build Succeeded,同时程序将运行至断点处停住:

深入了解Xcode 7——调试_第2张图片

 

调试器操作

调试器提供了继续执行、单步执行、跳入、跳出的功能。

  • 第一个按钮是调试器窗口的显示和隐藏;
  • 第二个按钮是断点工具效果开关;
  • 第三个按钮是继续按钮,点击后程序会继续运行直到遇见下一个断点、结束或者崩溃;
  • 第四个按钮是跳过按钮,可视为单步执行;
  • 第五个按钮是跳入按钮,如果程序里有当前光标所在函数或方法的源代码,Xcode将跳入并显示其代码,并将指示箭头设置在代码的起始位置;
  • 第六个按钮是跳出按钮,点击它会终止当前运行的函数,同时程序会停在调用函数那行的下一行代码;
  • 第七个按钮是位置模拟功能;
  • 所有按钮的最右是一个线程编程控件,可以让程序员选择观察对应线程的下拉菜单。

深入了解Xcode 7——调试_第3张图片

 

检查程序

Xcode有强大的数据提示功能,程序调试过程中我们可以在变量或方法参数上悬停鼠标,Xcode就会弹出一个小窗口显示它的当前数值。

深入了解Xcode 7——调试_第4张图片

此时我们还可以双击弹出的数值,并修改它的当前值。

例如index目前是0,如果我们改成10,那程序多运行几个单步就会因index值超出索引范围而退出:

 深入了解Xcode 7——调试_第5张图片

 

 

 

你可能感兴趣的:(Xcode,Objective-C基础教程,Xcode,7,调试,编译软件)