XCode4.0以后,编译器换成了LLVM 编译器 2.0,与以前相比,更加强大:

1.LLVM 编译器是下一带开源的编译技术.完全支持C, Objective-C, 和 C++.
2.LLVM 速度比 GCC快两倍,建立的程序也会运行的更快. 因为它更好的利用现代的芯片的结构.
3.LLVM和Xcode 4完全的整合在一起.包括关键字高亮,代码完整性等全都是由LLVM语法分析器来分析的. 这样可以在编辑的时候就可以很好的了解你的代码.

编译器进化之后,控制台调试命令前缀,也由原来的gdb更改成了lldb,所以当你看到控制台没有gdb而出现lldb的时候,不用惊慌,因为我们以前常用的调试命令依然可以使用:

使用前提:

1.既然是调试命令,理所当然的,程序模式应该选择Debug模式。

2.在Debug模式下,如果你的程序在运行中崩溃(Crash)掉,那么恭喜你,使用lldb调试的机会来了。

符合以上两个条件之后,控制台(即日志输出窗口All Output)会自动打出一个(lldb)命令,你在其后输入bt,回车。

恭喜你,这时Xcode会自动输出最后的一次调用堆栈。如下:

[cpp] view plaincopyprint?
  1. thread #1: tid = 0x1f03, 0x0132edee CoreFoundation`___forwarding___ + 206, stop reason = EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)
  2. frame #0: 0x0132edee CoreFoundation`___forwarding___ + 206
  3. frame #1: 0x0132ecb2 CoreFoundation`_CF_forwarding_prep_0 + 50
  4. frame #2: 0x00002e60 testMVC`-[ViewCtrl2 touchesBegan:withEvent:] + 128 at ViewCtrl2.m:40
  5. frame #3: 0x013c9e99 CoreFoundation`-[NSObject performSelector:withObject:withObject:] + 73
  6. frame #4: 0x000ffc49 UIKit`forwardTouchMethod + 268
  7. frame #5: 0x000ffb38 UIKit`-[UIResponder touchesBegan:withEvent:] + 30
  8. frame #6: 0x0003a2cf UIKit`-[UIWindow _sendTouchesForEvent:] + 272
  9. frame #7: 0x0003a5e6 UIKit`-[UIWindow sendEvent:] + 273
  10. frame #8: 0x00020dc4 UIKit`-[UIApplication sendEvent:] + 464
  11. frame #9: 0x00014634 UIKit`_UIApplicationHandleEvent + 8196
  12. frame #10: 0x012b2ef5 GraphicsServices`PurpleEventCallback + 1274
  13. frame #11: 0x0139c195 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53
  14. frame #12: 0x01300ff2 CoreFoundation`__CFRunLoopDoSource1 + 146
  15. frame #13: 0x012ff8da CoreFoundation`__CFRunLoopRun + 2218
  16. frame #14: 0x012fed84 CoreFoundation`CFRunLoopRunSpecific + 212
  17. frame #15: 0x012fec9b CoreFoundation`CFRunLoopRunInMode + 123
  18. frame #16: 0x012b17d8 GraphicsServices`GSEventRunModal + 190
  19. frame #17: 0x012b188a GraphicsServices`GSEventRun + 103
  20. frame #18: 0x00012626 UIKit`UIApplicationMain + 1163
  21. frame #19: 0x000026fa testMVC`main + 170 at main.m:16
  22. frame #20: 0x00002645 testMVC`start + 53

当然还有其他的命令(和gdb命令通用):

[cpp] view plaincopyprint?
  1. 命令                        解释
  2. break NUM               在指定的行上设置断点。
  3. bt                      显示所有的调用栈帧。该命令可用来显示函数的调用顺序。
  4. clear                   删除设置在特定源文件、特定行上的断点。其用法为:clear FILENAME:NUM。
  5. continue                继续执行正在调试的程序。该命令用在程序由于处理信号或断点而导致停止运行时。
  6. display EXPR            每次程序停止后显示表达式的值。表达式由程序定义的变量组成。
  7. file FILE               装载指定的可执行文件进行调试。
  8. help NAME               显示指定命令的帮助信息。
  9. info break              显示当前断点清单,包括到达断点处的次数等。
  10. info files              显示被调试文件的详细信息。
  11. info func               显示所有的函数名称。
  12. info local              显示当函数中的局部变量信息。
  13. info prog               显示被调试程序的执行状态。
  14. info var                显示所有的全局和静态变量名称。
  15. kill                    终止正被调试的程序。
  16. list                    显示源代码段。
  17. make                    在不退出 gdb 的情况下运行 make 工具。
  18. next                    在不单步执行进入其他函数的情况下,向前执行一行源代码。
  19. print EXPR              显示表达式 EXPR 的值。
  20. print-object            打印一个对象
  21. print (int) name      打印一个类型
  22. print-object [artist description]   调用一个函数
  23. set artist = @"test"    设置变量值
  24. whatis                  查看变理的数据类型

使用lldb调试工具,结合NSZombieEnabled 一起使用,实在是查找crash的一大利器啊,很是方便!

本文转载自:http://blog.csdn.net/likendsl/article/details/7576549

XCode的控制台调试命令相关推荐

  1. IOS调试lldb命令常用,po, Xcode控制台调试

    lldb命令常用(备忘) 假如你准备在模拟器里面运行这个,你可以在"(lldb)"提示的后面输入下面的: (lldb) po $eax LLDB在xcode4.3或者之后的版本里面 ...

  2. Xcode命令行简单了解一下

       最近在对开发流程进行工程化处理,优先处理的是单元测试的自动化.需要对Xcode的相关命令行进行一个全面的了解,转载了一篇文章<Xcodebuild命令使用> Xcodebuild简介 ...

  3. ipad pro python xcode_从命令行启动Xcode模拟器

    一.Xcode允许我们使用xcrun命令运行模拟器 1.列出你安装的所有可用的设备 xcrun instruments -s 终端显示结果: Apple TV (11.2) [E08E425C-ACE ...

  4. 【iOS 开发】Objective-C 入门 Xcode 环境详解

    作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/38424965 一. Xcode 环境安装 与 工程创建 1. ...

  5. 杂记-01.xcode模拟器管理

    xcode模拟器 一.Xcode允许我们使用xcrun命令运行模拟器 1.列出你安装的所有可用的设备 xcrun instruments -s 复制代码 2.开启指定模拟器(上面的列表就是可用模拟器名 ...

  6. iOS Xcode全面剖析

    链接:http://www.jianshu.com/p/3c8527898e84 一.创建新一个工程 二.Xcode界面详细介绍 三.Xcode菜单详解 四.Xcode快捷键介绍 五.结语 六.参考资 ...

  7. mac系统及xcode使用的SVN客户端安装升级

    当前的SVN版本已经升级到1.8.x了,但mac系统自带的以及xcode使用的SVN客户端版本没有跟着升级,还是1.6.x的版本.为了解决隐藏目录.svn只在根目录下存在的情况,至少要升级到1.7.x ...

  8. xcode-select: error: tool 'xcodebuild' requires Xcode错误解决方法

    From: http://blog.csdn.net/jymn_chen/article/details/21613745 因为机子里有两个Xcode,所以分别重命名了,但是在运行一个MakeFile ...

  9. [note] Homebrew的介绍、安装方法与常用命令整理

    Homebrew介绍: Homebrew是Mac下一款软件包管理器(软件包管理系统:在计算机中自动安装.配置.卸载和升级软件包的工具组合),可以简化macOS上软件的安装管理过程.Homebrew C ...

最新文章

  1. oracle中的rowid--伪列-删除表中的重复内容-实用
  2. 引用程序集没有强名称解决办法
  3. vue赋值成功后再回调_vue 回调赋值?
  4. java使用迭代器删除元素_使用Java从地图中删除元素
  5. Java对json遍历_如何遍历Java中的json对象
  6. 【LeetCode】524-通过删除字母匹配到字典里最长单词
  7. WebForm中 页面传参的总结
  8. 网上商城APP系统源码 B2C商城系统源码
  9. PCL RANSAC点云配准
  10. 计算机网络施工组织设计,06网络系统施工组织设计方案.doc
  11. 优秀的博客地址-冰冻三尺非一日之寒
  12. 静下心来,无欲则刚——源自内心的骄傲
  13. unsw计算机专业排名,新南威尔士大学UNSW计算机科学Computer Science专业排名第54位(2021年THE世界大学商科排名)...
  14. Eureka-使用教程
  15. python版本换行问题
  16. Java基于JSP的论坛交流系统
  17. antd 表单 校验、取值、重置
  18. Havok和Physx对比
  19. file 转换MultipartFile
  20. STM32内部EE使用问题跟踪

热门文章

  1. java内存溢出总结(1.8)
  2. 【NOIP模拟】健美猫
  3. 96. Unique Binary Search Trees1和2
  4. 20145324 《Java程序设计》第6周学习总结
  5. css 中 float 和 clear 的作用
  6. 操作系统学习笔记-2.1. 2进程的状态与转换
  7. linux的系统移植——交叉编译器
  8. 【计算机网络复习 数据链路层】3.2 封装成帧和透明传输
  9. Leetcode--80. 删除排序数组中的重复项Ⅱ
  10. 中柏平板u盘启动_中柏电脑如何设置BIOS U盘启动