Linux下C語言調試:使用GDB,調試的文件必須是debug版本可執行文件,以main.c爲例,
gcc -o main main.c -g(生成debug版本,debug纔可調試)
進入GDB:gdb main
l:顯示代碼
list main.c:num:顯示指定文件的代碼n行
b num:將斷點添加到num行
b fun:將斷點添加到fun入口處
info b:查看斷點內容
d bpnum:刪除斷點
disable bpnum:將斷點設置爲無效(不加斷點序號:設置所有斷點)
enable bpnum:將指定斷點設置有效(同上)
r:運行程序到第一個斷點處
s:進入將要被調用的函數運行
n:執行下一行
c:執行到下一個斷點(邏輯位置)
p val:查看變量值
display val:監視變量值
undisplay val:取消監視變量的值
p &val:查看變量地址
p str:顯示數組所有元素
p *str@len:通過指向數組的指針顯示數組元素
bt:顯示堆棧調用
ptype::顯示變量類型
info f:當前棧層的詳細信息
info locals:打印出當前函數中所有局部變量及其值
info catch:打印出當前的函數中的異常處理信息
info display:查看display設置的自動顯示信息
info registers:查看寄存器的情況
info all-registers:查看所有寄存器的情況(包括浮點寄存器)
printf i=6:修改被調試時運行的變量值
set language:查看gdb所支持的語言類型
info frame:查看當前函數的程序語言
info source:查看當前文件的程序語言
截圖說明(有圖有真相)