原文地址:http://blog.sina.com.cn/s/blog_71715bf801016d2y.htmlhtml
gdb不是萬能的,但是沒有gdb倒是萬萬不能的。這裏給你們簡單介紹下iOS開發中最基本的gdb命令。函數
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是print的簡寫,能夠用來打印全部的簡單類型,如int, float,結構體等。使用舉例以下:this
(gdb) p self $1 = (LauncherViewController *) 0x552c570 (gdb) p [[self view] size] Unable to call function 「objc_msgSend」 at 0x1e7e08c: no return type information available. To call this function anyway, you can cast the return type explicitly (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便是調用的意思。其實上述的po和p也有調用的功能。所以通常只在不須要顯示輸出,或是方法無返回值時使用call。使用舉例以下:spa
(gdb) call [[self view]sizeToFit] Unable to call function 「objc_msgSend」 at 0x1e7e08c: no return type information available. To call this function anyway, you can cast the return type explicitly (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 type information available. To call this function anyway, you can cast the return type explicitly (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提示符後面 輸入命令。調試
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 | 查看變理的數據類型 |