亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

vscode中的調試不會在斷點處停止,調試器啟動時會說“找不到文件...”

vscode中的調試不會在斷點處停止,調試器啟動時會說“找不到文件...”

Go
慕娘9325324 2022-10-10 20:02:23
Ubuntu。vscode 1.62.1。去1.17.3。vscode 去擴展 v0.29.0。鉆研 v1.7.1。我是 vscode 和 Go 的新手。我有多年在 Eclipse 中調試 Java 應用程序的經驗。我構建了一個小型多模塊 Go 應用程序。我可以在其他模塊的 main 和其他函數中設置斷點。在 main.go 中,我選擇“開始調試”。它啟動應用程序,我可以從控制臺判斷它正在工作,并且 REST 端點以我的虛擬響應進行響應。但是,它不會在斷點處停止。當我開始會話時,紅色的斷點標記突然變得空心,并且懸停在其中一個上會顯示一條消息“找不到文件...”,它會打印出問題源文件的完整路徑。當我啟動它時,它會在控制臺中顯示以下內容:開始: /home/.../go/bin/dlv-dap dap --check-go-version=false --listen=127.0.0.1:43347 --log-dest=3 from /home/.../ ... DAP 服務器正在偵聽:127.0.0.1:43347我沒有修改launch.json(我希望有一天能提供一個更友好的界面來編輯啟動配置)。我還能做錯什么?更新:這是在我按下 F5(開始調試)之前顯示 main.go 的屏幕截圖:請注意,我在 main 的第一行的 print 語句上有一個斷點。這是我按 F5 后看到的:請注意,它在控制臺中打印了“At start of main”。它并沒有在斷點處停止。懸停在斷點上時,還要注意工具提示中的消息。
查看完整描述

1 回答

?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

首先,只需確保您已使用go mod init voltagems: 啟動您的項目,這將解釋import "voltagems/xxx",但也有助于在調試時深入查找您的文件。您 應該在.main.go
go.modgo.summain.go

其次,檢查您的go env輸出,確保GOPATHGOROOT設置為默認路徑。

OP David M. Karr在評論中補充道:

我第一次創建項目時確實運行了“ go mod init”,但我意識到我不喜歡根模塊名稱,所以我將其更改為“ voltagems

我相信你可以直接編輯 go.mod 第一行,并確保它說:

module voltagems

然后go mod verify+go mod tidy

最后,go build .. 重新啟動您的 VSCode(或命令Reload Window),看看問題是否仍然存在。


OP David M. Karr指出了根本原因:

我的項目路徑中有符號鏈接

VSCode-Go 中有一個“ substitutePath”配置用于映射到絕對路徑。

可以看到Debugging with Legacy Debug Adapter中提到的這個參數

substitutePath

應用路徑映射以從編輯器中的路徑到已編譯程序中的路徑(默認值:[])。

這來自問題 622 “ debug:使用符號鏈接時斷點不起作用”。
提交 93f32bb

src/debugAdapter: 添加substitutePath調試配置

此更改為啟動和附加請求添加了新的配置選項。
substituePath接受一個從字符串映射到字符串的數組,該數組用于轉換傳遞給調試器然后返回客戶端的路徑。

這允許用戶將他們的符號鏈接目錄轉換為實際用于構建二進制文件的文件。
此外,這也可用于遠程調試,以及在程序構建后文件位置發生移動時。

示例:您需要一個fromto鍵:

"substitutePath": [
        {
            "from": "/symlink/path/dir/on/local/machine",
            "to": "/absolute/path/dir/on/local/machine",
        },


查看完整回答
反對 回復 2022-10-10
  • 1 回答
  • 0 關注
  • 445 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號