Linux  gdb調試

release 發行版      
debug  開發版本  可調試版本    添加了一些debug_*段   


源代碼 ----》  可執行文件    默認的release          
          編譯鏈接                    debug      gcc  -o  debug  main.c  -g
   
編譯過程中加入debug信息:
 gcc -o main.c  -g
鏈接不會加入debug信息
gcc  -o   main   main.o

調試的對象:                   單步執行
main.c   main.o   debug(調試)


gdb debug 進入調試   
    
l(list)   顯示源代碼(默認顯示main函數所在文件的源代碼)
list filename.num    顯示指定文件指定行附近的源代碼
斷點:
b(break)  linenum  給指定行添加斷點
b  functionname  給指定函數添加斷點
b filename:linenum  給指定文件指定添加斷點
b  linenum if 條件    添加一個條件斷點

Info b 顯示斷點信息
d  bpnum  刪除斷點
disable bpnum  將斷點設置爲無效
enable bpnum 將斷點設置爲有效

執行過程控制:
r (run) 啓動調試
n(next)  執行下一步
s  進入函數中執行
finish  退出函數執行
c(continue)   繼續運行  運行到下一個斷點中
q(quit)   退出調試

各種查看

p(print)  valname  查看變量的值
p  &valname 查看便量的地址
p  *ptr   查看指針指向的地址存儲的值

p   arr  顯示數組所有元素
p   *ptrarr@num(num表示元素個數)    通過指向數組的指針顯示所有元素

p struct_val   顯示結構體變量中所有成員的值
p struct_val.a   顯示結構體變量中某個成員的值
p ptr_struct->a   通過指針顯示結構體變量中某個成員的值

p  functionname(a,b)  將函數測試運行

bt  顯示函數調用棧(函數調用流程)

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