GDB進階命令

GDB詳細命令列表可參考:http://www.zeuux.org/science/learning-gdb.cn.html

 

 

1,

where : 輸出堆棧中跟蹤的函數調用記錄.

bt : backtrace,同上.

 

backtrace full

bt full

bt full n

bt full -n

    也打印本地變量。n是要打印的幀的數量,如上所述。

 

 

2,

frame  <number>: 檢查某一特定帖(一帖爲一個函數調用).


    frame  n
        n是一個從0開始的整數,是棧中的層編號。比如:frame 0,表示棧頂,frame 1,表示棧的第二層。
    
    up 
        表示向棧的上面移動n層,可以不打n,表示向上移動一層。 
        
    down  
        表示向棧的下面移動n層,可以不打n,表示向下移動一層。 

 

info frame  打印出更爲詳細的當前棧層的信息,只不過,大多數都是運行時的內內地址

 

 

     info args
        打印出當前函數的參數名及其值。
     
     info locals
        打印出當前函數中所有局部變量及其值。
        
     info catch
        打印出當前的函數中的異常處理信息。

3,

finish : 當用step命令進入函數內部後,用finish命令來執行程序直到從當前函數返回.

4,

用枚舉代替宏定義: 便於調試時檢查變量值的含義.

5,

watch <…>: 設置觀察點.

6,

gdb不能單步調試if,while語句的多個條件函數.所以必要時要重寫代碼.

也可在被調函數內設置斷點來檢查其值,但只能查看而不能記錄其值.

7,

調試工具: valgrind等.

8,

<<debugging>> , David J.Agans.

 

 

info break     查看斷點

print x=1 修改變量x的值

set args 。。。  指定參數: 

show args  


display 設置自動顯示的變量


delete 刪除斷點


frame或f 查看當前棧層的信息  

info frame或info f   這個命令會打印出更爲詳細的當前棧層的信息,只不過,大多數都是運行時的內存地址。比如函數的地址,調用函數的地址,被調用函數的地址,目前的函數是由什麼樣的程序語言寫成的、函數參數地址及值,局部變量的地址等等




path 《dir》: 設定程序運行路徑  

show 《dir》:查看路徑  

set environment varname[=value]:設置環境變量。如set env USER=hchen  

show environment[varname]: 查看環境變量  

info terminal: 顯示程序用到的終端的模式  

run>outfile: 重定向輸出  

tty /dev/ttyb:指定輸入輸出的終端設備 

 

 

 

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