golang對gdb有很好的支援。
首先要對go程式進行編譯,例如main.go,可以使用指令 go build -gcflags "-n -l" main.go
之後會生成乙個名字為main的二進位制可執行檔案。
然後可以使用gdb main指令,進入除錯模式。如果該程式需要載入一些具有特殊許可權的檔案,可以使用sudo gdb main指令。
如果該程式執行時,需要指定一些引數,可以用 「set args + 引數」指令進行引數指定。另外設定成功以後,可以使用show args進行引數檢視。
引數如果包含引數名和引數值,中間需用「=」連線,如果具有多個引數名和引數值,那麼每對引數名和引數值中間用空格分開,否則可能只有第一對引數名和引數值生效。
進入除錯以後,用「r」進行執行,ctrl+c可以進行中斷,「n」執行下一條程式,「break n」進行斷點指定(這個位置的n表示第n條程式語句),「c」繼續執行,「l」可以列出目前程式執行處的10條程式語句。
如果存在多個原始檔,可以使用「break 檔名:n」來指定哪個檔案的第幾行,例如「break main.go:759」。
go學習(三) gdb除錯
前言 go語言對gdb的版本是至少為gdb7以上,才能比較好的列印任意變數,如果低於這個版本,會出現一些問題。以下是記錄單步除錯使用的幾個列印變數。info frame,列印當前棧引數。info locals列印區域性變數 info args列印引數。bt顯示當前堆疊 x 3xw r檢視記憶體 刪除...
程式除錯gdb基礎
gcc 編譯器 gcc是linux平台下最重要的開發工具,它是gnu的c和c 編譯器,它總共提供的編譯選項超過100個,但只有少數幾個會被頻繁使用,收集如下。其基本用法為 gcc options filenames 最簡單的編譯方法是不指定任何編譯選項,會為目標程式生成預設的檔名a.out o 為將...
GDB除錯程式
gdb的三個功能 1 啟動被除錯的程式 2 設定斷點 3 設定斷點之後可以檢查程式的狀態 1.編譯生成可執行檔案 注意 g 除錯選項 gcc g tst.c o tst 2.啟動gdb gdb tst 3.在main函式處設定斷點 break main 4.執行程式 run5.利用 更加豐富的 gd...