深入了解Xcode 7——调试
做程序员,要相信bug无处不在的真理。
我们在查找bug的过程,就叫调试(debugging)。
0x01 暴力测试
暴力测试是最简单的。
在程序中写入输出语句(如printf、NSLog等)来输出程序中的控制流程和一些数据,这就是暴力测试。
对于小系统或者刚刚学习的新系统,暴力测试非常有用。
0x02 Xcode的调试器
Xcode有一个调试器(debugger)。
它可以中断程序,让我们在程序运行过程中检查程序的数据甚至修改程序,完成后可以恢复程序运行并查看结果。
它还让我们可以单步执行代码,减缓程序运行速度,细致地查看代码会如何对数据进行改动。
Xcode还有一个提供大量概述信息的调试窗口,以及一个可以直接向调试器发送调试命令的调试控制台(Console)。
0x03 开始调试
设置断点Breakpoint
断点是调试工作中必不可少的工具。
点击代码编辑区的左侧边栏,可以在当前鼠标所在行设置一个断点,Xcode用蓝色箭头标签标示。
不需要断点的话可以单击蓝色标签使它失效,也可以直接拖出边栏删掉。
运行程序
点击播放箭头,Xcode会先编译程序,如果编译通过,则显示Build Succeeded,同时程序将运行至断点处停住:
调试器操作
调试器提供了继续执行、单步执行、跳入、跳出的功能。
- 第一个按钮是调试器窗口的显示和隐藏;
- 第二个按钮是断点工具效果开关;
- 第三个按钮是继续按钮,点击后程序会继续运行直到遇见下一个断点、结束或者崩溃;
- 第四个按钮是跳过按钮,可视为单步执行;
- 第五个按钮是跳入按钮,如果程序里有当前光标所在函数或方法的源代码,Xcode将跳入并显示其代码,并将指示箭头设置在代码的起始位置;
- 第六个按钮是跳出按钮,点击它会终止当前运行的函数,同时程序会停在调用函数那行的下一行代码;
- 第七个按钮是位置模拟功能;
- 所有按钮的最右是一个线程编程控件,可以让程序员选择观察对应线程的下拉菜单。
检查程序
Xcode有强大的数据提示功能,程序调试过程中我们可以在变量或方法参数上悬停鼠标,Xcode就会弹出一个小窗口显示它的当前数值。
此时我们还可以双击弹出的数值,并修改它的当前值。
例如index目前是0,如果我们改成10,那程序多运行几个单步就会因index值超出索引范围而退出:
深入了解Xcode 7——调试相关推荐
- 如何使用Xcode分析调试在真机运行的UE4 IOS版游戏
http://www.cnblogs.com/TracePlus/p/4090227.html 写本文的是因为UE4 官方文档虽然也有,但主要讲的是是用UE4Editor把游戏打成一个IPA包的形式发 ...
- iOS开发之Xcode常用调试技巧总结
转载自:iOS开发之Xcode常用调试技巧总结 最近在面试,面试过程中问到了一些Xcode常用的调试技巧问题.平常开发过程中用的还挺顺手的,但你要突然让我说,确实一脸懵逼.Debug的技巧很多,比如最 ...
- xcode反汇编调试iOS模拟器程序
分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow http://bl ...
- Xcode的调试技巧
转自:http://www.cnblogs.com/daiweilai/p/4421340.html#biyouji 目录 前言 逼优鸡 知己知彼 百战不殆 抽刀断Bug 普通操作 全局断点(Glob ...
- xcode开发html5工具,5个Xcode开发调试技巧
1.Enable NSZombie Objects(开启僵尸对象) Enable NSZombie Objects可能是整个Xcode开发环境中最有用的调试技巧.这个技巧非常非常容易追踪到重复释放的问 ...
- (转)5个Xcode开发调试技巧
1.Enable NSZombie Objects(开启僵尸对象) Enable NSZombie Objects可能是整个Xcode开发环境中最有用的调试技巧.这个技巧非常非常容易追踪到重复释放的问 ...
- iOS之Xcode断点调试
目录 一.Breakpoint(断点)调试 1.Edit Breakpoint (1)Condition (2)Ignore (3)action (4)Options 2.Disable Breakp ...
- [转] Xcode 高级调试技巧
在苹果的官方文档中列出了我们在调试中能用到的一些命令,我们在这重点讲一些常用的命令 调试本地文件方法(Mac OS X):(lldb) target create "/Users/piaoy ...
- Xcode高级调试技巧(1)
在苹果的官方文档中列出了我们在调试中能用到的一些命令,我们在这重点讲一些常用的命令 调试本地文件方法(Mac OS X):(lldb) target create "/Users/piaoy ...
最新文章
- ASP.NET中随机数生成及应用
- DL之Mask R-CNN:2018.6.26世界杯阿根廷队VS尼日利亚比赛2:1实现Mask R-CNN目标检测
- 苹果mp3软件_神技能!!!音视频制作软件
- c语言int32u的作用,求c语言大神 帮我解释一下这段说的都是啥?
- 关于C#序列化结果的长度获取
- leetcode 764.Largest Plus Sign
- eclipse PHP开发环境配置
- [转]你可能不知道的五个强大HTML5 API
- 动态SQL实现批量删除指定数据库的全部进程
- Creating and Destroying Objects
- python asyncio tcp server_关于 asyncio 创建多个 tcp 连接,线程数不准确的问题
- 万能解压器安卓版_全能压缩软件下载
- 核心参数相近 功能表现不同 联发科MT8389与全志A31s多方位PK
- Cesium为3dTile模型添加气泡框
- 【Windows】windows生成rsa密钥对
- sigma-delta_Delta调试-简化失败的测试用例
- QT设置应用程序图标设置
- 记录:关于Win10系统中Microsoft Edge上的网页如何滚动截屏?
- 如何清除DNS污染?
- Mybatis实战练习六【批量删除Mybatis参数传递】