Xcode使用心得01:断点中断问题和调整编译目标

在obj-c系列博文里,我们粗浅的介绍了obj-c的一些语法以及F库中的一些标准类的使用,但是实际编写拿得出手的APP还是得老老实实在os x上用Xcode写啊!最近上网无意中发现还有支持os x和ios的ruby框架啊,手又痒了!另外Swift也推出了,Xcode6.0beta也装了,这个世界诱惑就是多啊!不过言归正传,在这一系列博文里还是诚恳的记录下使用Xcode过程中出现的问题以及解决方法吧。

OK!言归正传,在使用Xcode6beta时(以下全部简称x6b),发现设置断点,中断后直接跳到汇编视图,这根本不是一般人需要的哦(虽然本猫不是一般人,是特殊猫啊!),其实这个是可以设定的哦,在断点断下之后,菜单中依次选择Debug->Debug Workflow后,将总是显示汇编行勾去掉即可:

这时再中断时,源代码行可以正确显示鸟:

我们知道在x6b调试时后台使用的是lldb调试器,我们可以在调试时使用很多调试命令查看和设置代码中变量的值(类似于VS环境),看到上图红框部分了吗?就是这个区域啊!不过我在Debug Area中输入po val_name却显示错误哦:

(lldb) po now

error: warning: couldn‘t get cmd pointer (substituting NULL): extracting data from value failed

Couldn‘t materialize: couldn‘t get the value of variable now: no location, value may have been optimized out

Errored out in Execute, couldn‘t PrepareToExecuteJITExpression

咋回事呢,其实这是由于你工程编译目标类型是release而不是debug的缘故,因为没有对象的额外调试信息,自然显示不出来啦,解决很简单在x6b菜单依次选择Prouct->Scheme->Edit Scheme:

然后在弹出的窗口中将Release改为Debug就可以啦:

然后在lldb中使用po指令就可以看见对象内容了哦:

(lldb) po now

2014-07-04 09:45:19 +0000

时间: 2024-08-07 12:29:00

Xcode使用心得01:断点中断问题和调整编译目标的相关文章

Xcode使用心得01:断点中断问题和调整编译目标[转]

在obj-c系列博文里,我们粗浅的介绍了obj-c的一些语法以及F库中的一些标准类的使用,但是实际编写拿得出手的APP还是得老老实实在os x上用Xcode写啊!最近上网无意中发现还有支持os x和ios的ruby框架啊,手又痒了!另外swift也推出了,Xcode6.0beta也装了,这个世界诱惑就是多啊!不过言归正传,在这一系列博文里还是诚恳的记录下使用Xcode过程中出现的问题以及解决方法吧. OK!言归正传,在使用Xcode6beta时(以下全部简称x6b),发现设置断点,中断后直接跳到

微信公众账号开发历程及心得01

1.昨天主要使用BAE对php的开发接口测试代码进行了调试,使用SVN,将对checkout下载的index.php进行代码编写,并再次上传commit.在微信中配置相应url和token即可. 2.今天主要进行j2ee的开发部署与功能学习,初次听说到dom4j从xml进行解析的开源框架,还有xstream实现Java类到xml的转换的jar包. 利用这两个便可完成对微信平台所发消息的xml解析及消息回复的xml封装.中间业务过程便是j2ee的知识了~ 3.在部署时有些问题需要注意.java类型

xcode引入第三方静态类库 duplicate symbol _OBJC_XXX 重复编译错误

一:场景 xcode 同时引入了 libA.a, libB.a 两个静态类库,如果 这两个静态类库之中,都打包了,相同的库,方法之类的, 且 xcode 的 other link flag 为 -all_load 时,就会出现 上述 静态类库,重复编译错误: 二:解决方法 1:把xcode 的 other link flag 里面的 -all_load 去掉:有 force-load 的也去掉: 2:第二个办法是 把 libA.a ,libB.a 里面的 冲突 内容 在任意一方的 libxx.a

Xcode Debug之添加断点

1.添加全局断点(Add Exception Breakpoint) 通过添加全局断点,可以快速定位导致程序奔溃所在的代码行. 在Xcode 中找到Breakpoint navigator(也可以通过快捷键command + 7跳转),在最下面点击加号,第一个就是: 这样就添加了一个全局断点: 程序只要一奔溃,就会触发该断点,并定位到导致奔溃所在的代码行. 2.添加符号断点(Add Symbolic Breakpoint) Symbolic Breakpoint 是一种非常强大的断点. 如上步骤

Xcode开发调试技巧—断点调试

http://www.itcast.cn/news/20141015/16463596716.shtml 1.Condational Breakpoints(条件断点) 普通断点只要执行到断点所在行就会停止程序,但是有时候我们想当满足一定条件时才停止程序.这个调试技巧在当你想要捕获一个循环中的变量的特定值或者一些不常发生的情况时是非常有用的,而不用你每次迭代都停止来查看. 怎样开启条件变量? 1.添加一个普通断点 2.右键点击断点选择“Edit Breakpoint” 3.打开断点编辑器,你可以

Sqoop使用的心得<01>

/**从开始接手大数据的开发工作,在很多方面很是拙计啊, 简单的记一下接手的大数据工作的项目经验 */ Sqoop: 用于关系型数据和大数据数据之间的关联等操作 第一篇: 1:数据导入到大数据集群环境 一:首先通信要通(废话...) 连接数据库命令,按照这种方式(Oacle10g.Sqoop1.4.5-cdh5.2.0) sqoop import --connect "jdbc:oracle:thin:@134.64.**.**:1521:****" --username use --

javascript基础学习心得01

绝对值小于等于2的53次方的整数,即-253到253,都可以精确表示,也就是说15位的十进制数都可以精确处理: JavaScript 能够表示的数值范围为21024到2-1023(开区间),超出这个范围的数无法表示: NaN不是独立的数据类型,而是一个特殊数值,它的数据类型依然属于Number: NaN不等于任何值,包括它本身: 单纯的数学运算几乎没有可能抛出错误: Infinity与NaN比较,总是返回false : 0乘以Infinity,返回NaN: 0除以Infinity ,返回0 :

软工第一次作业-01 软件工程的实践项目的自我目标

1.对实践项目完成后学习到的能力的预期: 完成实践项目,首先有利于自己编程代码的能力,对软工项目的热情也能有所提高,熟悉并熟练掌握项目的开发过程.培养团队合作精神.在实践课程结束之前,希望自己能掌握单独完成一个简单项目的能力. 2.对项目课程的期望: 希望课程能深度的讲授项目开发的操作过程,如何应用.并且能给予团队之间更多配合交流的机会.能不拒绝同学的一些提问和疑惑. 3.对项目的愿景规划: 在初期,投入百分百的热情去学习与交流,努力加强团队意识.之后,会努力完成自己所要做的任务,在团队中尽可能

MySQL第01课- CentOS + 单实例MySql编译安装总结

2016年2月,从oracle转向MySql ,碰上几个坑,特此记录 总结 1.注意环境变量.配置文件,操作过程不能出错 2.相比rpm方式安装,编译安装方式可以指定安装路径,再说安装是简单活,将来安装最新版数据库,会看文档,学里面的知识更重要 3.系统管理员操作数据库一定要小心,重要操作应三思而后行 ----------------------------------------- 1.注意:第一步要检查是否有安装过mysql,有的话要干掉,否则最后启动服务不成功 [root@fox ~]#