使用生成可供gdb 調試的二進制文件
go build -o test -gcflags "-N -l" file.go
使用gdb test 即可進入調試模式 下面是gdb的命令 可以根據自己的需要運行對應的命令
start //開始調試
n //一條一條執行
step/s //執行下一條,如果函數進入函數
backtrace/bt //查看函數調用棧幀
info/i locals //查看當前棧幀局部變量
frame/f //選擇棧幀,再查看局部變量
print/p //打印變量的值
finish //運行到當前函數返回
set var sum=0 //修改變量值
list/l 行號或函數名 //列出源碼
display/undisplay sum //每次停下顯示變量的值/取消跟蹤
break/b 行號或函數名 //設置斷點
continue/c //連續運行
info/i breakpoints //查看已經設置的斷點
delete breakpoints 2 //刪除某個斷點
disable/enable breakpoints 3 //禁用/啓用某個斷點
break 9 if sum != 0 //滿足條件才激活斷點
run/r //重新從程序開頭連續執行
watch input[4] //設置觀察點
info/i watchpoints //查看設置的觀察點
x/7b input //打印存儲器內容,b--每個字節一組,7--7組
disassemble //反彙編當前函數或指定函數
si // 一條指令一條指令調試 而 s 是一行一行代碼
info registers // 顯示所有寄存器的當前值
x/20 $esp //查看內存中開始的20個數