IOS開發--常用的基本GDB命令,ios--gdb
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 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
call即是調用的意思。其實上述的po和p也有調用的功能。因此一般只在不需要顯示輸出,或是方法無傳回值時使用call。使用舉例如下:
(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 |
查看變理的資料類型 |