真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Linux系統(tǒng)上怎么進(jìn)行Go語(yǔ)言程序調(diào)試

這篇文章主要講解了“Linux系統(tǒng)上怎么進(jìn)行Go語(yǔ)言程序調(diào)試”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Linux系統(tǒng)上怎么進(jìn)行Go語(yǔ)言程序調(diào)試”吧!

站在用戶的角度思考問題,與客戶深入溝通,找到北安網(wǎng)站設(shè)計(jì)與北安網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:做網(wǎng)站、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請(qǐng)、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋北安地區(qū)。

調(diào)試工具

Go語(yǔ)言提供了內(nèi)置的調(diào)試器——go debug,但是Go的高效特性也帶來了許多調(diào)試挑戰(zhàn)。Dlv(https://github.com/go-delve/delve)是一個(gè) Go 語(yǔ)言的現(xiàn)代調(diào)試器,能夠支持 Go 特定的調(diào)試功能。Dlv 提供了單步跟蹤、查看變量、修改變量和斷點(diǎn)等常用的調(diào)試功能。另外,GDB也支持Go語(yǔ)言的調(diào)試,但是它不能理解Go語(yǔ)言的調(diào)度器,因此更適合開發(fā)內(nèi)核或只需要使用少量Go特定功能的程序調(diào)試。

安裝Dlv

Dlv是用Go語(yǔ)言編寫的,因此安裝它需要先安裝Go語(yǔ)言本身??梢詮墓俜骄W(wǎng)站(https://golang.org/dl/)下載最新版本的Go語(yǔ)言安裝包,并將其配置到環(huán)境變量中。

安裝完成Go語(yǔ)言后,我們需要先安裝Dlv依賴的庫(kù)——dynamically linked Linux utilities:

sudo apt-get update
sudo apt-get install linux-tools-common linux-tools-generic linux-tools-`uname -r`

接著執(zhí)行以下命令安裝Dlv:

go get -u github.com/go-delve/delve/cmd/dlv

以上命令將Dlv安裝到$GOPATH/bin目錄中,可以手動(dòng)將其添加到PATH變量,也可以通過以下命令將其添加到PATH中:

echo "export PATH=$PATH:$(go env GOPATH)/bin" >> ~/.bashrc
source ~/.bashrc

編譯調(diào)試程序

我們需要進(jìn)入程序所在的目錄,使用go build編譯程序并生成二進(jìn)制文件。假設(shè)我們的程序名為debug-demo,我們可以通過以下命令進(jìn)行編譯:

go build -gcflags "-N -l" -o debug-demo
  • -gcflags "-N -l":添加編譯標(biāo)識(shí)以確保編譯器不會(huì)優(yōu)化代碼,從而方便調(diào)試。

  • -o debug-demo:將生成的可執(zhí)行文件命名為debug-demo。

為了解決源碼被匯編的問題,我們還可以使用go env命令獲取CGO_ENABLED的值,并將它設(shè)置為0,然后再次進(jìn)行編譯:

go env
go build -gcflags "-N -l" -o debug-demo -tags netgo -ldflags '-w -extldflags "-static"' -v main.go

設(shè)置斷點(diǎn)

在程序中設(shè)置斷點(diǎn)是調(diào)試過程中最為常用的操作。我們可以在代碼的任意位置設(shè)置斷點(diǎn),以等待程序執(zhí)行到該處位置時(shí)停止。

使用Dlv可以通過以下兩種方式設(shè)置斷點(diǎn):

  1. 圖形界面(推薦)

使用Dlv的圖形界面可以更加直觀地對(duì)程序進(jìn)行操作和修改。執(zhí)行以下命令,接著會(huì)自動(dòng)開啟圖形界面:

dlv debug ./debug-demo
  1. 命令行

執(zhí)行以下命令進(jìn)入Dlv命令行模式:

dlv debug ./debug-demo --headless --listen=:2345 --api-version=2

進(jìn)入Dlv后,我們可以使用break(或縮寫為b)命令設(shè)置斷點(diǎn):

(b)reak {||:|}: 設(shè)置斷點(diǎn)
(b)reakpoints: 顯示當(dāng)前所有的斷點(diǎn)
(d)elete {|}: 刪除斷點(diǎn)#或通過Breakpoint.id刪除指定斷點(diǎn)
(c)ontinue: 從當(dāng)前位置繼續(xù)執(zhí)行程序,直到下一個(gè)斷點(diǎn)或程序完結(jié)

例如,我們可以在程序的第10行設(shè)置斷點(diǎn):

(b)reak main.go:10

控制程序運(yùn)行

在程序運(yùn)行過程中,可以使用step(或縮寫為s)和next(或縮寫為n)命令控制程序運(yùn)行:

(s)tep: 單步調(diào)試,如果當(dāng)前位置是函數(shù),則進(jìn)入該函數(shù)內(nèi)部
(n)ext: 單步調(diào)試,如果當(dāng)前位置是函數(shù),則不進(jìn)入該函數(shù)內(nèi)部

查看變量

Dlv也提供了顯示變量的命令,使用print(或縮寫為p)命令可以查看當(dāng)前作用域中的變量:

(p)rint : 顯示變量

例如,我們可以使用以下命令查看變量a和變量b:

(p)rint a
(p)rint b

修改變量

除了查看變量外,Dlv還支持修改變量的值,使用set命令修改變量的值:

(s)et  = : 修改變量的值

例如,我們可以使用以下命令將變量a的值修改為100:

(s)et a = 100

感謝各位的閱讀,以上就是“Linux系統(tǒng)上怎么進(jìn)行Go語(yǔ)言程序調(diào)試”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Linux系統(tǒng)上怎么進(jìn)行Go語(yǔ)言程序調(diào)試這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!


標(biāo)題名稱:Linux系統(tǒng)上怎么進(jìn)行Go語(yǔ)言程序調(diào)試
文章源于:http://weahome.cn/article/gjspes.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部