Posted on 2008-06-14 16:02
T.S Liu 閱讀(456)
評論(0) 編輯 收藏 引用 所屬分類:
ubuntu
* list:顯示程序中的代碼,常用使用格式有:
list
輸出從上次調用list命令開始往后的10行程序代碼。
list -
輸出從上次調用list命令開始往前的10行程序代碼。
list n
輸出第n行附近的10行程序代碼。
list function
輸出函數function前后的10行程序代碼。
* forward/search:從當前行向后查找匹配某個字符串的程序行。使用格式:
forward/search 字符串
查找到的行號將保存在$_變量中,可以用print $_命令來查看。
* reverse-search:和forward/search相反,向前查找字符串。使用格式同上。
* break:在程序中設置斷點,當程序運行到指定行上時,會暫停執行。使用格式:
break 要設置斷點的行號
* tbreak:設置臨時斷點,在設置之后只起作用一次。使用格式:
tbreak 要設置臨時斷點的行號
* clear:和break相反,clear用于清除斷點。使用格式:
clear 要清除的斷點所在的行號
* run:啟動程序,在run后面帶上參數可以傳遞給正在調試的程序。
* awatch:用來增加一個觀察點(add watch),使用格式:
awatch 變量或表達式
當表達式的值發生改變或表達式的值被讀取時,程序就會停止運行。
* watch:與awatch類似用來設置觀察點,但程序只有當表達式的值發生改變時才會停止運行。使用格 式:
watch 變量或表達式
需要注意的是,awatch和watch都必須在程序運行的過程中設置觀察點,即可運行run之后才能設置。
* commands:設置在遇到斷點后執行特定的指令。使用格式有:
commands
設置遇到最后一個遇到的斷點時要執行的命令
commands n
設置遇到斷點號n時要執行的命令
注意,commands后面跟的是斷點號,而不是斷點所在的行號。
在輸入命令后,就可以輸入遇到斷點后要執行的命令,每行一條命令,在輸入最后一條命令后輸入end就可以結束輸入。
* delete:清除斷點或自動顯示的表達式。使用格式:
delete 斷點號
* disable:讓指定斷點失效。使用格式:
disable 斷點號列表
斷點號之間用空格間隔開。
* enable:和disable相反,恢復失效的斷點。使用格式:
enable 斷點編號列表
* ignore:忽略斷點。使用格式:
ignore 斷點號 忽略次數
* condition:設置斷點在一定條件下才能生效。使用格式:
condition 斷點號 條件表達式
* cont/continue:使程序在暫停在斷點之后繼續運行。使用格式:
cont
跳過當前斷點繼續運行。
cont n
跳過n次斷點,繼續運行。
當n為1時,cont 1即為cont。
* jump:讓程序跳到指定行開始調試。使用格式:
jump 行號
* next:繼續執行語句,但是跳過子程序的調用。使用格式:
next
執行一條語句
next n
執行n條語句
* nexti:單步執行語句,但和next不同的是,它會跟蹤到子程序的內部,但不打印出子程序內部的語句。使用格式同上。
* step:與next類似,但是它會跟蹤到子程序的內部,而且會顯示子程序內部的執行情況。使用格式同上。
* stepi:與step類似,但是比step更詳細,是nexti和step的結合。使用格式同上。
* whatis:顯示某個變量或表達式的數據類型。使用格式:
whatis 變量或表達式
* ptype:和whatis類似,用于顯示數據類型,但是它還可以顯示typedef定義的類型等。使用格式:
ptype 變量或表達式
* set:設置程序中變量的值。使用格式:
set 變量=表達式
set 變量:=表達式
* display:增加要顯示值的表達式。使用格式:
display 表達式
* info display:顯示當前所有的要顯示值的表達式。
* delete display/undisplay:刪除要顯示值的表達式。使用格式:
delete display/undisplay 表達式編號
* disable display:暫時不顯示一個要表達式的值。使用格式:
disable display 表達式編號
* enable display:與disable display相反,使用表達式恢復顯示。使用格式:
enable display 表達式編號
* print:打印變量或表達式的值。使用格式:
print 變量或表達式
表達式中有兩個符號有特殊含義:$和$$。
$表示給定序號的前一個序號,$$表示給定序號的前兩個序號。
如果$和$$后面不帶數字,則給定序號為當前序號。
* backtrace:打印指定個數的棧幀(stack frame)。使用格式:
backtrace 棧幀個數
* frame:打印棧幀。使用格式:
frame 棧幀號
* info frame:顯示當前棧幀的詳細信息。
* select-frame:選擇棧幀,選擇后可以用info frame來顯示棧幀信息。使用格式:
select-frame 棧幀號
* kill:結束當前程序的調試。
* quit:退出gdb。