IOS调试—断点调试以及动态输出

标签: ios 调试 断点 | 发表时间:2015-04-22 23:56 | 作者:JerehEdu
出处:http://blog.csdn.net

  在开发App的过程中,需要反复的修改和优化我们的代码,特别是当程序出现bug,需要快速的找出错误的原因,进行修改,以保证程序的正确执行。

  断点调试,是最常用最简单的一种调试方式,可以一步步跟踪程序执行的流程,得到变量的值,快速的找到错误的原因。

1、断点的基本操作

  断点的操作非常简单,下面通过几张图来介绍一下如何添加、删除、编辑以及使用断点。

2、全局断点

  设置全局断点(异常断点),当遇到错误,Debug程序会自动定位到栈底信息,即跳到出错代码所在行。

 

3、条件断点

  设置条件断点,当满足条件的时候,才触发断点,适合用于循环结构中,可以准确的定位到某次循环。

4、符号断点

  符号断点可以中断指定函数的调用,也可以定位到出现异常的代码处,并打印异常信息。

 

5、NSLog输出

  在调试的过程中,经常通过NSLog在控制台输出需要的信息。NSLog输出比较消耗系统资源,输出的数据也可能会暴露出App里的保密信息,所在在发布正式版本之前必须把所有的NSLog输出都屏蔽掉。

  NSLog除了输出基本信息,对于结构体也可以一次性输出。

6、动态输出

  在程序的调试过程中,除了通过断点调试在Xcode下方查看变量的值,也可以通过NSLog在控制台输出想要的信息。使用NSLog输出需要在运行前就把想要输出的信息写好,如果有改变,需要重新编译运行,效率非常低。

  下面介绍一种非常简单实用的方式,在程序运行的过程中,通过在控制台输入相应的指令,可以快速的打印输出需要的信息,非常的方便。

  动态输出的指令有两个,p和po,与NSLog用法类似,p用于打印输出普通信息,po用于打印输出对象信息。使用动态指令需要与断点配合使用,这样就能够动态的打印输出程序执行到某个断点时的信息。

 

作者:JerehEdu 发表于2015/4/22 15:56:35 原文链接
阅读:101 评论:0 查看评论

相关 [ios 调试 断点] 推荐:

IOS调试—断点调试以及动态输出

- - CSDN博客推荐文章
  在开发App的过程中,需要反复的修改和优化我们的代码,特别是当程序出现bug,需要快速的找出错误的原因,进行修改,以保证程序的正确执行.   断点调试,是最常用最简单的一种调试方式,可以一步步跟踪程序执行的流程,得到变量的值,快速的找到错误的原因.   断点的操作非常简单,下面通过几张图来介绍一下如何添加、删除、编辑以及使用断点.

node js 断点调试

- - Web前端 - ITeye博客
大部分基于 Node.js 的应用都是运行在浏览器中的,. 例如强大的调试工具 node-inspector. node-inspector 是一个完全基于 Node.js 的开源在线调试工具,提供了强大的调试功能和友好. 的用户界面,它的使用方法十分简便. 首先,使用 npm install -g node-inspector 命令安装 node-inspector,然后在终.

IOS上objective-c开发调试方法

- - 瞄的技术
常用总结,陆续补充,免得忘记. 1.如果问题是可以复现的,用Breakpoint可以跟踪出错位置在进行分析. 2.如果使用Breakpoint无法查出crash问题,问题无法复现,可以用profile记录运行过程中的内存,cpu使用,看是否在某一功能突然升高,不稳定. 3.可以通过将所有的NSLOG控制台输出截获到文件输出,在真机上运行来排查在模拟器上无法复现的问题.

一步步调试解决iOS内存泄漏

- - 极客521 | 极客521
虽然iOS 5.0版本之后加入了ARC机制,由于相互引用关系比较复杂时,内存泄露还是可能存在. 这里讲述在没有ARC的情况下,如何使用Instruments来查找程序中的内存泄露,以及NSZombieEnabled设置的使用. 本文假设你已经比较熟悉Obj-C的内存管理机制. 实验的开发环境:XCode 4.5.2.

断点单步跟踪是一种低效的调试方法

- - 云风的 BLOG
断点单步跟踪的交互式调试器是软件开发史上的一项重大发明. 但我认为,它和图形交互界面一样,都是用牺牲效率来降低学习门槛. 本质上是一种极其低效的调试方法. 我在年少的时候( 2005 年以前的十多年开发经历)都极度依赖这类调试器,从 Turbo C 到 Visual C++ ,各个版本都仔细用过. 任何工具用上十年后熟能生巧是很自然的事.

【breakpoint】不依赖浏览器控制台的JavaScript断点调试方法

- - Ryan's Blog (郭亨的博客)
随着浏览器的逐渐强大,绝大多数情况下的代码调试都是可以通过浏览器自带的一些调试工具进行解决. 然而对于一些特殊情况仍然无法享受到浏览器的强大调试能力,比如QQ客户端内嵌web的调试(虽然说QQ目前已经可以编译开发者工具,但是仍需要安装指定文件包或工具)、非正常浏览器web、移动场景下的内嵌等场景. 基于这个场景我们团队已经在nohost下引入了weinre,并得到了广泛的使用.

推荐一款神器,桌面远程调试IOS网站的工具 很好很强大 支持国产!

- - ITeye博客
MIHTool 是前端工程师在iOS设备上调试和优化页面的得力助手.. 首先app Store下载 MIHTOOL. 然后安装后地址栏打开所需要调试的网站,然后会弹出本地使用的ip地址 类似这样的  http://192.168.1.165:1630/devtool/client/#leZV6e.

[IOS]iOS App性能优化

- - 操作系统 - ITeye博客
iOS App的性能关注点. 虽然iPhone的机能越来越好,但是app的功能也越来越复杂,性能从来都是移动开发的核心关注点之一. 我们说一个app性能好,不是简单指感觉运行速度快,而应该是指应用启动快速、UI反馈响应及时、列表滚动操作流畅、内存使用合理,当然更不能随随便便Crash啦. 工程师开发应用时除了在设计上要避免性能“坑”的出现,在实际遇到“坑”时也要能很快定位原因所在.

iOS 5评测

- littlepush - Solidot
Ars Technica的评测认为iOS 5值得升级,当然它也不可避免的存在一些小问题,给用户增添些烦恼. 用户在升级前最好手动备份一下iDevice,确保所有的应用都能转移.

关于iOS 7

- - 曉生
上手使用2天,感觉ios7的方向挺对,有设计的不错的地方,比如系统功能交互的完善和动效细节. 但界面有不够完善之处,比如颜色不够统一,难以理解相机和设置为什么用那么难看的渐变灰色,控制中心太像交互原型图,更主要是功能缺乏分类,但相信这只是beta版的问题,就像ios7运行还不够流畅一样,都还需要时间去完善.