Xcode 调试技巧
一 NSLog调试
官方文档:Logs an error message to the Apple System Log facility.
即NSLog不是作为普通的debug log的,而是error log;其次,NSLog也不是printf的简单封装,而是Apple System Log(ASL)的封装
ASL:大概是个系统级别的log工具,Syslog的替代版,提供了一系列强大的log功能,NSLog对它进行了高层次的封装
详细的链接:http://blog.sunnyxx.com/2014/04/22/objc_dig_nslog/
大致是说: NSLog比printf得效率低几十倍,因为NSLog会向ASL写log,同时向Terminal写log,而且同时会出现在Console.app(Mac 自带的软件,用NSLog打出的log在其中全部可见)中;不仅如此,每一次NSLog新建一个ASL client并向ASL守护进程发起连接,log后再关闭连接.而且,NSLog每次会将当前的系统时间,进程和县城信息等作为前缀打印出来,这也会引起消耗
可在Debug中写一个宏:
//使用自定义的NSLog,在调试的时候自动隐藏 #ifdef DEBUG
#define BSLog(...) NSLog(__VA_ARGS__) #else
#define BSLog(...)
#endif
二 简单断点+po(p)命令调试
断点时可以在Xcode的lldb调试区使用po或p命令打印对象或变量,对于当前栈帧中引用到的变量都是可见的,所以说假如只是看一眼某个对象运行到这是不是存在,是什么值的话,设个断点就够了,况且IDE已经把这个功能集成,鼠标放变量上就可以了
三 Condition
Xcode 调试技巧的更多相关文章
- Xcode 调试技巧 --常用命令和断点
Xcode 中的调试技巧与我们的日常开发息息相关,而这些调试技巧在我们解决Bug时,常常有事半功倍的作用,经常会用到的有各种断点 和 命令.而这些调试技巧也经常会在面试中问到,所以不知道的就来看看吧. ...
- (转)Xcode调试技巧
转自http://www.apkbus.com/android-140340-1-1.html 这篇文章给大家带来的是一些Xcode实用技巧,比如: • 摆脱NSlog打印输出,使用断点日志. • 摆 ...
- xcode调试技巧
xode报错有时挺无厘头,完全不知道哪里出的问题,最后还得用排除法,记录一些工作中认为有用的调试技巧 1.左侧视图点断点视图,左下角点加号,选择exception breakpoint,类型选c++, ...
- Xcode 调试技巧-b
随着Xcode 5的发布,LLDB调试器已经取代了GDB,成为了Xcode工程中默认的调试器.它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能.LLDB为Xcode提供了底层调试环 ...
- iOS Xcode 调试技巧
一 NSLog调试 官方文档:Logs an error message to the Apple System Log facility. 即NSLog不是作为普通的debug log的,而是err ...
- Xcode调试技巧(断点和重构)
首先是最简单的普通断点有时候不知道是那个方法调用的崩溃的这个方法,传了个奇怪的值,打个断点就就可以在左侧工具栏里看到最近几个方法执行的循序,和那个方法调用的本方法,一般小问题在这里就可以解决啦~ 条件 ...
- iOS Xcode 调试技巧 全局断点这样加才有意思
http://blog.sina.com.cn/s/blog_876a2c9901016ezh.html
- iOS开发之Xcode常用调试技巧总结
转载自:iOS开发之Xcode常用调试技巧总结 最近在面试,面试过程中问到了一些Xcode常用的调试技巧问题.平常开发过程中用的还挺顺手的,但你要突然让我说,确实一脸懵逼.Debug的技巧很多,比如最 ...
- Xcode 常用调试技巧总结
NSLog,po命令和普通断点调试相信每个iOS开发者都会,这里就不作介绍了. 一.Memory Graph Xcode8新增:Memory Graph解决闭包引用循环问题 有很多叹号说明就有问题了. ...
随机推荐
- [Android Pro] Scroller使用分析
reference to : http://blog.csdn.net/a910626/article/details/51548840 一.Scroller是什么? Android里 Scrolle ...
- Django-Admin后台管理
Rhel6.5 Django1.10 Python3.5 应用环境:Python+Virtualenv(Python Virtualenv运行Django环境配置) Django-Admin后台管理 ...
- 51nod1240(莫比乌斯函数)
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1240 题意:中文题诶- 思路:直接暴力筛选就好了... 代码 ...
- tensorflow中的lstm的state
考虑 state_is_tuple Output, new_state = cell(input, state) state其实是两个 一个 c state,一个m(对应下图的 ...
- 【Java EE 学习 56】【酒店会员管理系统技术点总结】
一.树状菜单加载 这是js的一个典型应用,使用zTree插件能够完成该项任务http://www.ztree.me/v3/main.php 我是用的版本:zTree2.5 使用方法: <%@ p ...
- js获取css中的样式
众所周知,obj.style只能够获取 <div id="a" style="width:100px;"></div> 结构上的样式 如 ...
- [leetcode] 题型整理之图论
图论的常见题目有两类,一类是求两点间最短距离,另一类是拓扑排序,两种写起来都很烦. 求最短路径: 127. Word Ladder Given two words (beginWord and end ...
- 进击的Python【第二章】:Python基础(二)
Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...
- 【CentOS】LAMP相关3
调优,安全如果是运维一个网站,PHP搭建的话,可能会出现500的错误,白页怎么去排查呢,今天就涉及到这方面的东西 http://blog.csdn.net/bsi_l4/article/details ...
- 修改redhat 源
关于免费解决RedHat6.5的:This system is not registered to Red Hat Subscription Managemenredhat默认自带的yum源需要注册, ...