Xcode的控制台调试命令 (小小的体会)

原文地址: http://blog.csdn.net/likendsl/article/details/7576549

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会自动输出最后的一次调用堆栈。如下:

其实说实话这个 真的挺难找的 我自己在百度上搜了半天的  Xcode命令行指令  但是出来的都不是我想要的结果 ,今天突然就看到一个关于这个的博客,看了之后 我也将指令 在命令行里面敲了 试试 。确实很有用!  但是 还有很多更厉害的功能我还没有研究出来 ,慢慢发现 ,慢慢更新把~~

还有一些其他的指令 ::::(和gdb命令通用的)

  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                  查看变理的数据类型

如果能将这个运用的熟练的话 ,那么你的层次就会上升另一个档次,在找bug方面 解决EXC_BAD_ACCESS错误的一种方法--NSZombieEnabled一起使用,实在是查找crash的一大利器啊,很是方便!!

最后给打击推荐几个 网站

  1. CocoaDev,个人觉得讲Cocoa技术十分专业的网站之一,下面的链接详细讲了讲NSZombieEnable的原理。http://www.cocoadev.com/index.pl?NSZombieEnabled
  2. 苹果官方的Mac OS X Debugging Magic,详细讲述了最为一个高级苹果程序员应该具备的调试技巧 http://developer.apple.com/library/mac/#technotes/tn2004/tn2124.html
  3. 其实还可以在Instruments中开启NSZombie选项,这样就可以在Instruments中直接查看crash时候的callstack了:http://www.markj.net/iphone-memory-debug-nszombie/
时间: 2024-10-28 06:07:31

Xcode的控制台调试命令 (小小的体会)的相关文章

Xcode的控制台调试命令

XCode4.0以后,编译器换成了LLVM 编译器 2.0 与以前相比,更加强大:1.LLVM 编译器是下一带开源的编译技术.完全支持C, Objective-C, 和 C++.2.LLVM 速度比 GCC快两倍,建立的程序也会运行的更快. 因为它更好的利用现代的芯片的结构.3.LLVM和Xcode 4完全的整合在一起.包括关键字高亮,代码完整性等全都是由LLVM语法分析器来分析的. 这样可以在编辑的时候就可以很好的了解你的代码. 编译器进化之后,控制台调试命令前缀,也由原来的gdb更改成了ll

关于XCode 的agvtool命令行

简介:用agvtool如何来自动更新版本号和bulid version agvtool是一个命令行工具,允许你自动递增到下一个最高的数量或具体的数字这些数字.本文档提供了更新您的构建和版本号码使用agvtool一步一步的指示. “Xcode”和“命令行”部分显示是在Xcode中分别执行的步骤和命令行. Important: When your app includes multiple targets, agvtool will set the version numbers of all yo

Xcode 的expression命令

expression命令是执行一个表达式,并将表达式返回的结果输出,是LLDB调试命令中最重要的命令,也是我们常用的 p 和 po 命令的 鼻祖. 他主要有2个功能 (1) 执行表达式 举例:改变视图背景颜色(无需改变xcode中的项目文件代码) (2) 输出返回值 衍生出的扩展命令 p &print &e &call  命令 这几个命令其实就是 "expression  -- " 的别名 po命令 oc里所有的对象都是用指针表示的,打印出来的是对象的指针,而不

结对编程项目总结以及一些小小的体会

结对项目:电梯调度算法的实现和测试 12061205 王力民   12061196 金鑫 这就是我们两个忙着编代码的样子啦,之前也没有尝试过这样一种结对编程的方式,第一次这样合作,还是有不少感想与收获的吧. 一.关于结对编程的优缺点 优点: 1. 在开发层次,结对编程能提供更好的设计质量和代码质量,两人合作能有更强的解决问题的能力. 2. 对开发人员自身来说,结对工作能带来更多的信心,高质量的产出能带来更高的满足感,同时,能够降低学习成本,一边编程,一边共享知识和经验,有效地在实践中进行学习.

Xcode 调试命令

XCode4.0以后,编译器换成了LLVM 编译器 2.0 与以前相比,更加强大:1.LLVM 编译器是下一带开源的编译技术.完全支持C, Objective-C, 和 C++.2.LLVM 速度比 GCC快两倍,建立的程序也会运行的更快. 因为它更好的利用现代的芯片的结构.3.LLVM和Xcode 4完全的整合在一起.包括关键字高亮,代码完整性等全都是由LLVM语法分析器来分析的. 这样可以在编辑的时候就可以很好的了解你的代码. 编译器进化之后,控制台调试命令前缀,也由原来的gdb更改成了ll

Object-C 入门 Xcode 环境详解 HelloWorld 程序

作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/38424965 一. Xcode 环境安装 与 工程创建 1. 下载环境 相关资源下载 : -- IOS 相关资料下载页面 : https://developer.apple.com/devcenter/ios/index.action ; -- Xcode 下载页面 : https://developer.apple.com/xcode/downloads/

lldb调试命令

XCode4.0以后,编译器换成了LLVM 编译器 2.0 与以前相比,更加强大:1.LLVM 编译器是下一带开源的编译技术.完全支持C, Objective-C, 和 C++.2.LLVM 速度比 GCC快两倍,建立的程序也会运行的更快. 因为它更好的利用现代的芯片的结构.3.LLVM和Xcode 4完全的整合在一起.包括关键字高亮,代码完整性等全都是由LLVM语法分析器来分析的. 这样可以在编辑的时候就可以很好的了解你的代码. 编译器进化之后,控制台调试命令前缀,也由原来的gdb更改成了ll

【IOS 开发】Object-C 入门 Xcode 环境具体解释

作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/38424965 一. Xcode 环境安装 与 project创建 1. 下载环境 相关资源下载 : -- IOS 相关资料下载页面 : https://developer.apple.com/devcenter/ios/index.action ; -- Xcode 下载页面 : https://developer.apple.com/xcode/downl

iOS 开发常用的调试命令

XCode4.0以后,编译器是LLVM,控制台调试命令前缀是lldb 第一.LLVM简介 LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time).链接时间(link-time).运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容已有脚本. 第二. 对关注编译技术的开发人员,LLVM提供了很多优点: 现代化的设计 LLVM的设计是高度模块化的,使得其代码更为清晰和便于排查问题