[c/c++] GDB讀書筆記(轉貼)

 

按:

  瞭解基本的命令總比被IDE完全包裝之後更能讓開發人員更深入的瞭解調試器,所以轉貼一篇文章。

 

關於斷點的命令:
awatch                                用來爲一個表達式設置觀察點,在表達式的值發生改變時,或者是當表達式的值
被度曲的時候,程序都會停止運行。
格式:awatch 要設置觀察點的表達式
break                                用來設置斷點。
格式:break 要設置斷點的行號
clear                                清除斷點。
格式:clear 要清楚的斷點所在的行號
commands                                        在遇到斷點之後執行特定指令而設。
格式:commands 斷點號。
condition                                        在滿足一定條件時纔在指定的行上設置斷點。
格式:condition 斷點編號 條件表達式
delete                                清楚斷點或自動顯示的表達式。
格式:delete 斷點的編號或者表達式
disable                                使斷點暫時失效。
格式:disable 斷點編號
enable                                恢復暫時失效的斷點。
格式:enable 斷點編號
ignore                                在一定範圍內,忽略用戶設置的斷點。
格式:ignore N CONT
tbreak                                設置臨時斷點。作用一次。
格式:tbreak 設置臨時斷點的行號
watch                                爲一個表達式設置觀察點。當表達式的值發生改變時,程序就會停止運行。
格式:watch 要設置觀察點的表達式
關於數據的命令:
display                                用來顯示一些表達式的值
格式:display 要顯示值的表達式
info display                                        顯示當前所有的要顯示值得表達式的有關情況。
格式:info display
delete display                        刪除一個要顯示值得表達式。
格式:delete display 刪除顯示的表達式的編號
disable display                        暫時屏蔽那些不需要顯示的表達式。
格式:disalbe display 屏蔽顯示的表達式的編號
enable display                        使顯示值被屏蔽的表達式恢復顯示。
格式:enable display 需要顯示的表達式的編號
undisplay                                        結束某個表達式值的顯示。
格式:undisplay 不需要再顯示值的表達式
whatis                                顯示某個表達式的數據類型。
格式:whatis 需要查詢類型的表達式
print                                打印表達式值,也可以用來打印內存中從某個變量開始的一段區域的內容。
格式:print 需打印的表達式
ptype                                用來給出類型定義
格式:ptype 參數
set                                用來爲變量賦值的
格式:set 變量=表達式
關於文件的命令:
add-shared-symbol-files                                用來從動態的連接映射的共享目標文件中裝入符號表。
add-symbol-file                        用來從已經動態裝入的文件中裝入符號表。
格式:add-symbol-file FILE ADDR
cd                                用來改變當前工作目錄的。
core-file                                        使某個文件成爲core dump,從而可以檢查內存和寄存器。
directory                                        用來向源文件搜索路徑中增加一個目錄。
格式:directory 要增加的目錄
file                                命令是用來裝入待調試程序的命令。
格式:file 要裝入的文件的名稱
list                                用來進行文件內容列表
list命令可使用的非空的參數有以下幾種方式:
LINENUM:當前文件的LINENUM行;
FILE:LINENUM:指定文件的LINENUM行;
FUNCTION:當前文件的FUNCTION函數;
FILE:FUNCTION:指定文件的FUNCTION函數;
*ADDRESS:列出包含該地址的文件。
格式:list 要列表的開始行號
forward                                用來從列表當前行開始向後查找第一個匹配某個字符串的程序行。
格式:forward 要匹配的字符串
load                                用來動態的往正在調試的程序中裝入文件,並記錄它的符號表,準備連接。
格式:load 準備裝入的文件名稱
path                                用來向目標文件的搜索路徑中增加目錄的。
格式:path 要增加到搜索路徑中的目錄名稱
reverse-search                        從列表當前行開始向前查找第一個匹配某個字符串的程序行。
search                                和forward 命令的用法是完全一致的。
關於程序運行的命令:
cont                                使程序字信號發生後或是停在斷點之後再繼續運行。
handle                                用來對信號設置處理函數的。
格式:handle 信號 信號處理
jump                                用來指定程序開始調試的指令或地址的。
格式:jump 行號或是指令地址
kill                                用來結束當前程序的調試。
格式:kill
next                                用來繼續程序的運行的,它越過子程序調用。
格式:next N 或是空
nexti                                用來單步執行一條指令的。
step                                用來執行一條語句,它也不越過子程序的調用,而是跟蹤到子程序內部。
stepi                                用來執行一條指令,它也不越過子程序的調用,而是跟蹤到子程序內部。
關於堆棧的命令:
backtrace                                        用來打印棧楨(stack frame)指針的,他的使用格式和功能和比命令完全相同

格式:backtrace 要打印出來的棧楨指針的個數
frame                                用來打印棧楨的。
格式:frame 要打印的棧楨的編號
select-frame                        用來指定要選擇的棧楨的編號。
本人學習/複習GDB時寫的命令總結。。。希望對各位有所幫助。
Written by choatrue

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章