Xcode编译很快,这相对于VS来说是一大优势,但是在很多调试方面就感觉没有VS那么强大了,可以参考这里关于Xcode和VC 11的优缺点点击打开链接;
之前做项目一直不需要很复杂的逻辑,而且大部分代码都是了然于胸之后才动手,所以没有用到很高级的Xcode调试技巧,今天不幸遇到了一个bug,需要查看内存,记下查找到的资料:http://hi.baidu.com/ahikcmoxezbnpqe/item/21e8d356d06238928c12edf7
//
Xcode的调试器为用户提供了一个GDB的界面,GDB是GNU组织的开放源代码调试器。您可以在Xcode的图形界面里做任何事情;但是,如果您需要 您可以在命令行里使用GDB的命令。
要在一个调试的任务里输入GDB命令行命令:
在工具栏里点击Console Drawer (控制台抽屉窗口)按钮打开控制台。
您可以在控制台里查看Xcode调试器发送给GDB的命令,或者您可以直接在控制台里输入GDB命令。在控制台窗口里点击然后在gdb提示符后面 输入命令。
- 命 令 解释
- break NUM 在指定的行上设置断点。
- bt 显 示所有的调用栈帧。该命令可用来显示函数的调用顺序。
- clear 删 除设置在特定源文件、特定行上的断点。其用法为:clear FILENAME:NUM。
- continue 继续执行正在调试的程序。该命令用在程序 由于处理信号或断点而
- 导致停止运行 时。
- display EXPR 每次程序停止后显示表达式的值。表达式由程序定 义的变量组成。
- file FILE 装载指定的可执行文件进行调试。
- help NAME 显 示指定命令的帮助信息。
- info break 显 示当前断点清单,包括到达断点处的次数等。
- info files 显 示被调试文件的详细信息。
- info func 显示所有的函数名称。
- info local 显 示当函数中的局部变量信息。
- info prog 显示被调试程序的执行状 态。
- info var 显示所有的全局和静态变量名称。
- kill 终 止正被调试的程序。
- list 显示源代码段。
- make 在 不退出 gdb 的情况下运行 make 工具。
- next 在 不单步执行进入其他函数的情况下,向前执行一行源代码。
- print EXPR 显 示表达式 EXPR 的值。
- print- object 打印一个对象
- print (int) name 打印一个类型
- print- object [artist description] 调用一个函数
- set artist = @"test" 设置变量值
- whatis 查 看变理的数据类型
//
另外,Xcode在调试时无法查看变量值的解决方法:
在Project的Build中把 Optimization Level 设置成 None 即可.对于刚开始接触Xcode的同学来说,可能不太容易找到Optimization Level这个选项,可以直接在项目工程属性里搜索Optimization Level,直接定位到该属性,然后将其设置为None[-O0]即可;