Goland使用delve進(jìn)行遠(yuǎn)程調(diào)試的詳細(xì)教程
引言
網(wǎng)上給出的使用delve進(jìn)行遠(yuǎn)程調(diào)試,都需要先在本地交叉編譯或者在遠(yuǎn)程主機(jī)上編譯出可運(yùn)行的程序,然后再用delve在遠(yuǎn)程啟動(dòng)程序,最后要在goland中配remote debug,然后啟動(dòng)remote debug連接遠(yuǎn)程的delve進(jìn)行調(diào)試。
本教程會(huì)將上面的步驟簡(jiǎn)化為只需要兩步,(1)在遠(yuǎn)程運(yùn)行程序(2)在本地啟動(dòng)調(diào)試。
調(diào)試的效率和方便程度都會(huì)很大提高。
一、安裝軟件
(1)本地安裝go 1.22.2 和goland 2023.3.7
這步驟就省略了,默認(rèn)已經(jīng)安裝了。
(2)遠(yuǎn)程主機(jī)上安裝 delve 最新版 和go 1.22.5
安裝go的方法可以參考官網(wǎng)https://go.dev/doc/install給出的教程。
安裝delve的最新版本使用下面的命令:
$ go install github.com/go-delve/delve/cmd/dlv@latest
二、本地goland配置run target
在Run -> Manage Targets中增加新的運(yùn)行目標(biāo)機(jī)器。


配置源文件目錄和編譯后文件的輸出目錄。

在運(yùn)行配置配置里面設(shè)置運(yùn)行target為上述配置的target。


設(shè)置的編譯參數(shù)為:-o PlatformGateway -gcflags "all=-N -l"
接下來(lái)要在Before launch中配置啟動(dòng)遠(yuǎn)程主機(jī)上的dlv。


再次點(diǎn)擊加號(hào)增加遠(yuǎn)程外部工具運(yùn)行。


給dlv傳遞的參數(shù)為:--listen=:2345 --headless=true --api-version=2 --accept-multiclient exec PlatformGateway
最后的PlatformGateway是輸出文件的名稱(chēng),在配置go tools argiments時(shí)指定的。
三、配置遠(yuǎn)程debug
點(diǎn)擊Run -> Edit Configurations

增加遠(yuǎn)程調(diào)試選項(xiàng),之前給出的配置參數(shù)也是從這個(gè)頁(yè)面來(lái)的。

四、進(jìn)行遠(yuǎn)程調(diào)試
1、啟動(dòng)遠(yuǎn)程dlv,并運(yùn)行目標(biāo)程序。選擇圖示中的選項(xiàng),然后點(diǎn)擊右側(cè)的三角運(yùn)行按鈕。

2、觀察運(yùn)行窗口出現(xiàn)如下提示。

3、在程序中打斷點(diǎn)。
4、啟動(dòng)遠(yuǎn)程debug。



可以看到程序已經(jīng)在斷點(diǎn)上停住了。
五、總結(jié)
通過(guò)本文的設(shè)置,進(jìn)行遠(yuǎn)程調(diào)試的時(shí)候只需要點(diǎn)擊啟動(dòng)運(yùn)行按鈕,然后再點(diǎn)擊debug按鈕,就可以進(jìn)行遠(yuǎn)程調(diào)試了,比網(wǎng)上大多數(shù)的教程都要便捷和方面,可以提高調(diào)試的效率和體驗(yàn)。
以上就是Goland使用delve進(jìn)行遠(yuǎn)程調(diào)試的詳細(xì)教程的詳細(xì)內(nèi)容,更多關(guān)于Goland delve遠(yuǎn)程調(diào)試的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Golang上下文Context的常見(jiàn)應(yīng)用場(chǎng)景
Golang?context主要用于定義超時(shí)取消,取消后續(xù)操作,在不同操作中傳遞值。本文通過(guò)簡(jiǎn)單易懂的示例進(jìn)行說(shuō)明,感興趣的可以了解一下2023-04-04
Go語(yǔ)言error的設(shè)計(jì)理念及背景演化詳解
這篇文章主要為大家介紹了Go語(yǔ)言error的設(shè)計(jì)理念及背景演化詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
golang 執(zhí)行命令行的實(shí)現(xiàn)
本文主要介紹了golang 執(zhí)行命令行的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
Go第三方庫(kù)faker假數(shù)據(jù)生成器
bxcodec/faker是Go語(yǔ)言中用于生成假數(shù)據(jù)的第三方庫(kù),適用于開(kāi)發(fā)過(guò)程中填充數(shù)據(jù)庫(kù)和創(chuàng)建測(cè)試數(shù)據(jù),它支持生成各種類(lèi)型的假數(shù)據(jù),本文就來(lái)介紹一下如何使用,感興趣的可以了解一下2026-02-02
GO語(yǔ)言類(lèi)型查詢(xún)類(lèi)型斷言示例解析
這篇文章主要為大家介紹了GO語(yǔ)言類(lèi)型判斷及類(lèi)型斷言,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04
簡(jiǎn)單對(duì)比一下?C語(yǔ)言?與?Go語(yǔ)言
這篇文章主要介紹了簡(jiǎn)單對(duì)比一下?C語(yǔ)言?與?Go語(yǔ)言的相關(guān)資料,需要的朋友可以參考下2023-08-08
Go 中 slice 的 In 功能實(shí)現(xiàn)探索
這篇文章主要介紹了Go 中 slice 的 In 功能實(shí)現(xiàn)探索,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
在Go語(yǔ)言開(kāi)發(fā)中實(shí)現(xiàn)高性能的分布式日志收集的方法
本文介紹了在Go語(yǔ)言開(kāi)發(fā)中實(shí)現(xiàn)高性能分布式日志收集的關(guān)鍵步驟和考慮因素,包括日志生成與采集、日志傳輸、日志收集器的高性能網(wǎng)絡(luò)I/O、日志存儲(chǔ)與分析、監(jiān)控與告警系統(tǒng)、擴(kuò)展性與可維護(hù)性等方面,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-01-01

