现在的位置: 首页 > 综合 > 正文

IOS开发之—-常用的基本GDB命令

2013年10月05日 ⁄ 综合 ⁄ 共 2667字 ⁄ 字号 评论关闭

gdb不是万能的,可是没有gdb却是万万不能的。这里给大家简单介绍下iOS开发中最基本的gdb命令。

po

po是print-object的简写,可用来打印所有NSObject对象。使用举例如下:

(gdb) po self

<LauncherViewController:0x552c570>

(gdb) po [self view]

<UIView: 0x544eb80; frame = (0 0; 320 411);autoresize = W+H; layer = <CALayer:0x544ebb0>>

(gdb) print-object [self view]

<UIView: 0x544eb80; frame = (0 0; 320 411);autoresize = W+H; layer = <CALayer:0x544ebb0>>

p

p是print的简写,可以用来打印所有的简单类型,如int, float,结构体等。使用举例如下:

(gdb) p self

$1 = (LauncherViewController *) 0x552c570

(gdb) p [[self view] size]

Unable to call function “objc_msgSend” at 0x1e7e08c: no return typeinformation available.

To call this function anyway, you can cast the return typeexplicitly (e.g. ‘print (float) fabs (3.0)’)

(gdb) p (CGSize)[[self view] size]

$1 = {

width = 320,

height = 411

}

(gdb) print (CGSize)[[self view] size]

$2 = {

width = 320,

height = 411

}

call

call即是调用的意思。其实上述的po和p也有调用的功能。因此一般只在不需要显示输出,或是方法无返回值时使用call。使用举例如下:

(gdb) call [[self view]sizeToFit]

Unable to call function “objc_msgSend” at 0x1e7e08c: no return typeinformation available.

To call this function anyway, you can cast the return typeexplicitly (e.g. ‘print (float) fabs (3.0)’)

(gdb) call (void)[[self view]sizeToFit]

(gdb) call [[self view] size]

Unable to call function “objc_msgSend” at 0x1e7e08c: no return typeinformation available.

To call this function anyway, you can cast the return typeexplicitly (e.g. ‘print (float) fabs (3.0)’)

(gdb) call (void)[[self view] size]

**************************************************************************************************************

 

Xcode的调试器为用户提供了一个GDB的界面,GDB是GNU组织的开放源代码调试器。您可以在Xcode的图形界面里做任何事情;但是,如果您需要您可以在命令行里使用GDB的命令。 


要在一个调试的任务里输入GDB命令行命令: 

在工具栏里点击Console Drawer (控制台抽屉窗口)按钮打开控制台。 
您可以在控制台里查看Xcode调试器发送给GDB的命令,或者您可以直接在控制台里输入GDB命令。在控制台窗口里点击然后在gdb提示符后面输入命令。

GDB to LLDB Command Map

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

抱歉!评论已关闭.