【转】Xcode概览:调试应用程序

原文转自:http://www.cocoachina.com/ios/20141128/10358.html

本文由CocoaChina翻译组成员Creolophus(github主页)翻译自苹果官方文档Xcode Overview:Debug Your App,校对唧唧歪歪,敬请勘误。

当您点击了工作区工具条中的运行按钮并且你的应用编译成功,那么Xcode运行您的应用程序并开启调试功能。您可以使用图形化的工具直接在源码编辑器中调试应用,比如使用Data tips、快速查看(Quick look)来查看变量值。

调试区域(Debug area)和调试导航器(Debug navigator)可以让您检查运行中的app的状态,并控制其执行。

为了创建一个高质量的应用,要尽可能减少应用对用户系统的影响。使用调试导航器(Debug navigator)中的调试仪表(Debug gauges)深入了解你应用的资源消耗,当你发现问题时,请使用Instruments确认并分析应用的性能。

如果你正在开发一款iOS应用,在设计和早期测试阶段可以使用iOS模拟器找出存在的问题。

你可以配置Xcode来帮助你专注于调试任务。举例来说,当代码运行到一个断点时,你可以让Xcode自动播放一次警告声,并创建一个命名为的Debug标签的窗口,Xcode可在此展示调试区(Debug area)、调试导航器(Debug navigator)以及断点处的代码。

控制执行并观察状态信息(Control Execution and View State Information)

Xcode允许您一行一行单步调试你的代码来查看特定执行阶段中应用的状态。使用调试区域(Debug area)来控制代码的执行,观察程序的变量和寄存器,观察控制台的输出并且与调试器交互。 你也可以使用调试区导航渲染帧的OpenGL调用,并查看特定调用的渲染状态信息。

通过点击工作区窗口工具条上视图选择器的中间按钮()来展示调试区域(Debug area)。

点击调试区工具栏中的暂停按钮(在暂停和继续之间切换)来暂停app的执行。想要设置断点,只需要打开源代码文件,并且点击你想暂停执行代码所在行的边列(Gutter)。边列中一个蓝色箭头()会标识断点。如果想了解更多关于断点的信息,包括如何设置断点行为和不同类型的断点,请查看Breakpoint Navigator Help.

暂停应用后,当前正在执行的代码行会用绿色高亮。你可以使用调试区顶部条上的Step Over()、Step Into()、Step Out()三个按钮来单步调试代码的执行。Step Over会执行当前行的代码行,包括任何的方法。如果当前的代码行调用了一个方法,step into会开始执行当前代码行,然后在到达被调用方法的第一行时停止。Step Out则执行当前方法或函数的剩余部分。

当暂停执行时,调试导航器会打开并展示一个堆栈追踪。选中其中一项,在编辑区和调试区中查看该项目的信息。当你调试时,可展开或收起线程来显示或隐藏堆栈框架。

将指针悬停在源代码编辑器中的任何变量上,可查看一个显示着变量值的数据提示。点击变量旁边的Inspector图标(),将对象的Objective-C描述打印至调试区控制台,并在一个额外弹出视图中展示。

点击Quick Look图标()观察变量内容的图形化展示。你可以针对自己的对象实现自定义的快Quick Look。详细信息请查看Quick Look for Custom Types in the Xcode Debugger.

当你在设备上构建并运行一个OpenGl ES应用时,调试区工具栏会包含一个Frame Capture 按钮( )。点击该按钮来捕捉一个frame。你可以使用OpenGL ES帧捕获做以下事情:

· 检查OpenGL ES 状态信息

· 内省OpenGL ES 对象,比如视图纹理和着色器。

· 在每次绘制调用之前单步调试状态调用,然后观察每个调用的变化。

· 单步调试绘制调用以准确查看如何构建图像。

· 在辅助编辑器中查看每个绘制调用使用哪些对象。

· 编辑着色器以查看应用程序上的效果。

以下截图展示已渲染帧的组件。左侧调试导航器显示部分渲染树,主调试器显示已渲染帧的颜色和深度资源,并展示其他一些图片资源。

想要了解更多关于调试OpenGL ES的信息,请查看Debug Navigator Help 和 Debug Area Help.

在运行时检查你应用的视图层次(Examine Your App’s View Hierarchy at Runtime)

点击在调试区顶栏的Debug View Hierarchy按钮()来检查当前暂停应用的3D渲染视图分层。你可以:

· 通过在画布中点击并拖动来旋转该透视图。

· 使用左下方的滑动条增大或减小各视图层之间的间距。

· 使用右下方双滑块的滑动条改变可见视图的范围。滑动左滑块来改变最底层可见的视图,滑动右滑块来改变最上层可见的视图

· 按下展示剪切内容按钮()来显示选中视图中被裁减的内容。

· 按下展示约束按钮()来显示选中视图的任何Auto Layout约束。

· 使用放大(+)按钮和缩小(—)按钮来增加或减少透视图的放大倍数。

想要了解更多调试视图的信息,请查看Debugging Views

检查应用对系统资源的影响(Examine Your App’s Impact on System Resources)

调试导航器(Debug navigator)提供了能对应用程序性能进行深度分析的仪表。比如CPU仪表计量器展现了app的CPU的使用率,方便你侦测异常情况。根据应用的目的和功能,仪表计量器可以告诉你应用对内存、iCloud、OpenGL ES、电量以及CPU的影响。

如果想要看详细的报告,可单击调试区的某个仪表计量器。如果你想要对你应用做更深层次的分析,请点击Profile In Instruments按钮。

在问题区,电量报告会提供一个初步的诊断来告知你什么可能在严重损耗你的用电量。

想要更多帮助,请查看Using Debug Gauges

测量应用程序的性能(Measure Your App’s Performance)

Xcode中的Instruments程序会从在运行的应用中收集数据,并且展现在一个图形化的时间线上。使用Instruments,你可以收集性能方面的数据,比如你应用的内存使用,磁盘活动情况,网络活动情况和图形操作。通过把数据放在一起查看,你可以分析你应用表现的各个方面来找出潜在提升性能的可能。你也可以自动化测试iOS应用的界面元素。

在Xcode几种方法来打开Instruments,比如:

· 从仪表计量器详细报告界面点击Profile in Instruments 按钮

· 选择Product>Profile

· 在一个scheme中的Profile项中指定一个Instrument

Instruments程序使用名为instruments的单独的数据采集模块,来随时收集某个进程的数据。Instruments程序有一个模板库,每个模板包括了为获取相关信息的一系列instruments。

想要了解更多信息,请查看Performance OverviewInstruments User Guide

在iOS模拟器上进行早期测试(Perform Early Testing in iOS Simulator)

iOS模拟器可帮你在设计和早期测试阶段找到主要的问题。举例来说,iOS模拟器的Debug菜单提供的多款工具可为你提供帮助:

· 减速一个动画来找出问题。

· 触发iCloud同步。

· 辨认出那些可能会有损你应用性能的混合视图层。

· 辨别出源像素没有对准到目标像素的图片

· 查看哪些内容在屏幕外渲染渲染。

· 模拟不同的地点。

在iOS模拟器的任何模拟环境下,主屏幕都会提供打开iOS原生应用(比如Safari,Contacts,Maps和Passbook)的功能。你可以在iOS模拟器中初步的测试你的应用与这些应用的交互。举例来说,如果你正在测试一款游戏,可以使用iOS模拟器来测试这款游戏是否正确调用Game Center。

iOS模拟器中的辅助功能检视器(Accessibility Inspector)可帮助你不受个人制约的测试你应用的可用性。Accessibility Inspector显示你应用可访问的每个元素的信息并且可以模拟VoiceOver与这些元素交互。如果想打开Accessibility Inspector,点击iOS模拟器的主屏按钮然后点击设置>通用>辅助功能。将Accessibility Inspector右侧滑动按钮打开。

你可以在iOS模拟器通过改变语言来测试你应用的本地化。设置>通用>语言与地区>iPhone语言。

尽管你可以在iOS模拟器中测试你应用的基本功能,但是作为一个测试平台,由于诸多原因,模拟器还有很多限制。比如:

· 因为iOS模拟器是在Mac上运行,并使用电脑的内存,这远大于真机上的内存。

· iOS模拟器使用Mac的CPU运行而不是iOS真机的CPU。

· iOS模拟器并不运行真机上的所有线程。

· iOS模拟器无法模拟像加速度计,陀螺仪,摄像头,或者近距离传感器之类的硬件特性。

开发应用时,请务必在你想要支持的所有iOS真机和iOS系统版本上运行和测试。

想要了解更多详细信息,请查看iOS Simulator User Guide中的Testing and Debugging in iOS Simulator一节。

自定义你的调试工作流(Customize Your Debugging Workflow)

通过Xcode Behaviors来偏好定制Xcode的行为。选择Xcode> Behaviors,自定义在建立、运行和调试应用时Xcode该做的事。

比如,Xcode可以在你代码在断点暂停时显示调试区域或者在建立应用失败时,显示问题导航器

下面截图中展示了当代码暂停时,Xcode行为是怎么自定义的下面有些自定义行为的例子。

· 每次暂停时播放一个提示音。

· 在工作区域窗体中创建一个名为Debug的标签来展示调试导航器。

· 在Debug标签中同时展示变量视图和控制台视图。

· 在Debug标签中隐藏Utilities区域。

当你设置了上面的行为后,当项目中的代码碰到断点时,Xcode在工作区窗口创建一个debug标签,里面显示特定的内容。

你可以自定义Xcode的行为,这些自定义行为可以由菜单中的选项或者绑定的快捷键触发。选择Xcode > Preferences, 选择Behaviors偏好窗口,然后点击底部的Add(+)按钮。输入新行为的自定义名称然后按下Return。在右侧复选框中勾选当你触发这个行为时你想让Xcode做的事。比如,建立一个名为Unit Testing的行为用来保存你工程的快照并且运行你的单元测试。当你建立这个行为后,它会出现在Xcode> Behaviors菜单中。

想给自定义行为添加个快捷键的话,选择Xcode > Preferences然后点击Key Bindings。在Key Bindings偏好窗口中,选择Customized标签找到你自定义的行为。在文本框中,键入快捷键然后点击文本框以外的地方完成操作。

想要了解更多断点的类型和断点的作用,查看Breakpoint Navigator Help

时间: 2024-10-12 02:43:07

【转】Xcode概览:调试应用程序的相关文章

[转]Xcode概览:调试应用程序

原文网址: blog.csdn.net/fhbystudy/article/details/12856261 本文由CocoaChina翻译组成员Creolophus(github主页)翻译自苹果官方文档Xcode Overview:Debug Your App,校对唧唧歪歪,敬请勘误. 当您点击了工作区工具条中的运行按钮并且你的应用编译成功,那么Xcode运行您的应用程序并开启调试功能.您可以使用图形化的工具直接在源码编辑器中调试应用,比如使用Data tips.快速查看(Quick look

【转】Xcode概览(Xcode 6版):循序渐进认识Xcode

该系列文章翻译自苹果的Xcode Overview文档,对大部分开发者来说,已经非常熟悉Xcode的功能和特性,不过伴随着iOS 8 SDK的发布,Xcode 6中也有些许调整,所以对该文档进行了翻译和整理,感谢参与本次翻译的译者和校对人员:星夜暮晨(博客),Creolophus(github主页)以及唧唧歪歪(微博),敬请勘误. Xcode概览:关于Xcode Xcode概览:在工作区窗口开发您的应用程序 Xcode概览:在项目或工作区中维护代码和其他资源 Xcode概览:在源码编辑器中编写代

xcode的调试技巧

转自:http://www.cnblogs.com/daiweilai/p/4421340.html#biyouji 目录 前言逼优鸡知己知彼 百战不殆抽刀断Bug 普通操作 全局断点(Global BreakPoint) 条件断点(Condational Breakpoints)打印的艺术 NSLog 开启僵尸对象(Enable NSZombie Objects)进击的码农 Console(lldb 命令) Profile(instruments) Xcode视图调试结语 前言 最近博主临近毕

Xcode概览:关于Xcode

原文:Xcode Overview:Introduction 关于Xcode Xcode是苹果的集成开发环境(IDE),开发者可用其构建适用于苹果iPad.iPhone以及Mac设备的应用程序.在应用程序的创建.测试.优化以及提交至App Store的过程中,Xcode为开发者提供了用以管理整个开发工作流的工具. 概览 从Mac的App Store app中免费下载Xcode.下载完成后,Xcode会自动出现在系统的Launchpad中,点击Xcode图标即可打开. 单窗口界面(Single-W

5个Xcode开发调试技巧

转自Joywii的博客,原文:Four Tips for Debugging in XCode Like a Bro 1.Enable NSZombie Objects(开启僵尸对象) Enable NSZombie Objects可能是整个Xcode开发环境中最有用的调试技巧.这个技巧非常非常容易追踪到重复释放的问题.该技巧会以非常简洁的方式打印指出重复释放的类和该类的内存地址. 怎么开启僵尸对象呢?首先打开 Edit Scheme (或者通过热键?<),然后选择Diagnostics选项卡,

iOS开发——调试篇&amp;Xcode常用调试技巧

Xcode常用调试技巧 Enable NSZombie Objects(开启僵尸对象) Enable NSZombie Objects可能是整个Xcode开发环境中最有用的调试技巧.这个技巧非常非常容易追踪到重复释放的问题.该技巧会以非常简洁的方式打印指出重复释放的类和该类的内存地址. 怎么开启僵尸对象呢?首先打开“Edit Scheme”(或者通过热键?<),然后选择Diagnostics选项卡,勾选Enable NSZombie Objects选项. 现在我们可以关掉ARC来测试重复释放的问

Xcode断点调试技巧

本文转载自破船 在程序中,无论是你想弄清楚为什么数组中有3个对象而不是5个,或者为什么一个新的玩家开始之后,游戏在倒退——调试在这些处理过程中是比较重要的一部分.通过本文的学习,我们将知道在程序中,可以使用的大多数重要调试功能,并如何利用这些调试功能来帮助你以更少的时间解决bug. 本文将介绍如下内容: 使用控制台检查程序的状态 进行日志记录,并熟练的驾驭NSLog 利用对象的生命周期跟踪内存的使用 使用控制台进行检查 在进行调试程序的时候,可能Xcode底部的小黑框会是你最好的朋友.它能输出日

Xcode视图调试

视图调试 使用视图调试器检查您的视图层次结构,可以轻松地判断视图位置.大小以及实现问题. 在XCode中运行你的应用程序,在调试栏上点击“调试视图层次”按钮,进入视图调试器. XCode停止你的应用程序,在调试导航栏中显示视图层次,并在主编辑器中显示一个交互式三维模型. 选择显示的窗口,在主编辑器中点击任何位置,按下鼠标键进行拖拽.视图会分解成三维层次,方便您查看视图层的等级划分和视图之间的关系. 左侧的滑动按钮允许你去调节视图间距,使得您能更方便地观察单个视图对象.右侧的滑动按钮允许你使用“从

真机调试iPhone程序

真机调试iphone应用程序 1.真机调试流程概述 1)       真机调试应用程序,首先需要有一个苹果开发者帐号,才可创建证书请求CSR: 2)       打开应用程序钥匙串访问(keychain access)请求证书: 3)       登录iDP Portal “certificates”栏目中提交证书请求: 4)       确认提交后,刷新页面自动生成.cer文件,将它下载到本地: 5)       双击.cer文件,即把证书放到了钥匙串访问中: 6)       通过itune