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

 

欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 330987132 | Go:217696290 | Python:336880185 | 做人要厚道,转载请注明出处!http://www.cnblogs.com/sunshine-anycall/p/4186121.html

时间: 2024-04-28 19:26:33

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

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

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

[译] Xcode 中的用户断点

本文讲的是[译] Xcode 中的用户断点, 原文地址:User Breakpoints in Xcode 原文作者:Michael Ochs 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:oOatuo 校对者:fengzhihao123, LeviDing Xcode 中的用户断点 大家应该都用过 Xcode 中的断点,但你们熟悉用户断点么?下面我将向你们介绍如何使用以及何时使用这种断点.如果你已经对用户断点有所了解了,可以查看下文章后面的清单,看

Xcode使用心得03:打开僵尸(Zombie)模式

    如果打开了ARC或垃圾回收模式,在程序中发消息给以及重新分配的对象,将会引起程序崩溃.这时定位崩溃原因将非常困难,因为出问题的对象已经重新分配了.一个解决的方法就是要求Xcode将对象设置为"僵尸",而不是重新分配.当给僵尸对象发送消息时,会抛出一个可描述的异常,且调试器会在出错代码行中断下来哦.下面看看如何打开"僵尸"模式喽:     依次选择Xcode菜单: Product->Edit Scheme,进入Diagnostics窗口,勾选Zombie

Axis2-WebService框架的学习心得-01

 今天看了之前几天写的代码,关于WebService框架--Axis2的一些心得,总体我把Axis2的开发步骤和结构分为3部分:      1.初始化组件:      1.1 核心组件类:                        RPCServiceClient--客户端服务类--建立全局的Axis2对象的基础核心组件                        MessageContext--消息摘要上下文--建立全局 消息摘要的上下文组件,即使整体WebService系统框架的上下文

Xcode使用心得02:如何在项目中关闭ARC特性

    在obj-c系列内存管理的博文里大家应该对ARC有所了解,一般是不推荐关闭ARC特性的,但你也保不齐啥时候有这个需求,于是乎我们看看在最新的x6b中如何将其关闭吧. 因为Build Seting里的子项太多,怕是找不过来呢?于是就有了搜索栏哦,见上图气球泡2的下方,我们可以在这里输入任何子项的名称,这是我们当然是输入Automatic Reference Counting喽,其实不用输完整,因为是不完全匹配啊: 在找到的ARC子项中将其设为No即可喽.

xcode反汇编调试iOS模拟器程序(四)自动断点应用之NSNotificationCenter

知道怎么查看后,先看看有什么实际应用,拿NSNotificationCenter来做实践吧. 首先在某个容易进入的地方加断点,并停在那,例如main函数.在gdb或lldb输入命令,手工添加断点.如下图: 输入的命令如下: b -[NSNotificationCenter addObserver:selector:name:object:] b -[NSNotificationCenter addObserverForName:object:queue:usingBlock:] 然后contin

Xcode的gdb调试

关于GDB 对于大多数Cocoa程序员来说,最常用的debugger莫过于Xcode自带的调试工具了.而实际上,它正是gdb的一个图形化包装.相对于gdb,图形化带来了很多便利,但同时也缺少了一些重要功能.而且在某些情况下,gdb反而更加方便.因此,学习gdb,了解一下幕后的实质,也是有必要的. gdb可以通过终端运行,也可以在Xcode的控制台调用命令.本文将通过终端讲述一些gdb的基本命令和技巧. 首先,我们来看一个例子:     #import <Foundation/Foundation

调试程序时在不中断程序的情况下输出函数调用信息(Mac OS,Linux &amp;amp; Windows)

转载请注明出处:http://blog.csdn.net/horkychen 有时在查找问题时,不想中断程序运行就输出一下某个条件下的函数执行顺序可以帮助定位问题. 在Xcode下可以编辑断点设置中的Action设为Debugger Command, 如果你使用GDB作为调试器(项目设置),然后输入backtrace如下: 记得勾选"Automatically continue after evaluating", 这样程序就不会停在这个断点,而是继续执行下去. 运行结果: #0  a

Xcode IOS开发环境的快捷键

  快捷键 编辑文件 CMD + N: 新文件; CMD + SHIFT + N: 新项目; CMD + O: 打开; CMD + S: 保存; CMD + SHIFT + S: 另存为; CMD + W: 关闭窗口; CMD + SHIFT + W: 关闭文件 编辑 CMD + [: 左缩进;CMD + ]: 右缩进; CMD + CTRL + LEFT: 折叠;CMD + CTRL + RIGHT: 取消折叠; CMD + CTRL + TOP: 折叠全部函数;CMD + CTRL + BO