首先,編寫測試**,如下:
package main編譯,並執行程式(ubuntu下的sublime text 2,如果你也想用這個工具,可以參看我令一篇文章:ubuntu下使用sublime text 2搭建go開發環境):import (
"fmt")
func main()
func printnumber()
}
好了,現在我們就可以開始使用gdb除錯,生成的main應用程式了,這裡為了快速找到應用程式,我把該程式和**放置到 ~/ 目錄下。
一,使用gdb載入應用程式,開啟終端,輸入 gdb main,如下圖:
這裡注意最後兩行:
reading symbols from /home/administrator/main...done.
loading go runtime support.
讀取main程式完成和載入go執行時。
二,輸入 l 命令,相當於list,從第一行開始列出原始碼,如下圖:
認真的朋友,會發現main.go**,並沒有完整的顯示在這裡,怎麼回事呢?
這裡我們直接再敲個回車,就會產生如下圖的結果:
還是不完整,再來個回車呢?
現在已經完整了,如果再來個回車呢?
這個時候,根據提示,我們就知道**已經全部顯示出來了。
三,設定斷點,並顯示斷點資訊:
輸入 break 8,表示在第8行,設定乙個斷點。
輸入 break printnumber,表示在函式 printnumber 函式入口處,設定乙個斷點,這裡如圖沒有設定成功,需要輸入 break main.printnumber。感謝朋友jamcode和mikespook的幫助。
輸入 break 14,表示在第14行,設定乙個斷點。
輸入 info break,表示檢視斷點資訊。
如圖:
四,執行程式,並除錯。
輸入 r,執行程式,run命令簡寫,程式將停止第8行斷點處,如下圖:
使用 n,單條語句執行,next命令簡寫。
使用 c,繼續執行程式(跳過當前斷點),continue命令簡寫。
使用bt,檢視函式堆疊。
使用finish,退出函式。
下面是我簡單除錯的結果:
ROS使用gdb除錯斷點
我目前沒有使用roslaunch 通過修改 launch prefix xterm e gdb ex run args 獲得成功。我使用gdb去啟動orb slam節點。在 catkin ws devel lib orb slam下,終端開啟輸入 gdb orb slam雖然我會提示 reading...
linux 下g 和 gdb的使用總結
用gdb編譯程式時,首先在編譯程式時加 g gcc g test.c o test 執行方法有兩種 gdb test 或者gdb file test gdb 可以做什麼?1 gdb 可以以除錯模式啟動程式。2 gdb 可以 attach 到正在執行的程序 3 gdb 可以分析 core 檔案中的資訊...
GDB工具如何使用斷點資訊
在linux平台下,使用最多的就是除錯工具gdb.通過命令gcc g test.c 缺省會生成a.out檔案,這個檔案由於引數 g的原因加入了除錯資訊。所以可以使用gdb來載入並除錯,但是在使用斷點的時候,你會很鬱悶。真的。比如下面先來看這個過程。test.c 1 include 2 3 void ...