调试:在Vscode软件中调试.go文件代码
1.1.1 确保调试文件正常运行
准备好.go文件,并且该文件能正常运行,终端输入命令运行程序,如:go run time.go
测试代码:
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println("start")
time.Sleep(1 * time.Second)
fmt.Println("1s")
time.Sleep(500 * time.Millisecond)
fmt.Println("500ms")
time.Sleep(500 * time.Microsecond)
fmt.Println("500us")
start := time.Now()
time.Sleep(10000 * time.Microsecond)
elapsed := time.Since(start)
fmt.Println(elapsed)
}
1.1.2 添加go.mod
在终端输入命令 go mod init module,创建go.mod文件
注意:如果没有go.mod文件进行调试的时候会出现报错
1.1.3 给调试文件添加断点
进入要调试的.go文件中,鼠标移至代码行的左侧会出现一个红点,鼠标左键点击想要断点的代码行进行断点,该代码行会进行红点标记。再次点击已经断点的红点可取消断点。
1.1.4 创建调试的.json文件
点击视图左侧的运行和调试按钮,或使用快捷键Ctrl+Alt+D,点击创建launch.json文件。
点击Launch Package,生成launch.json文件,
launch.json,代码如下:
注意:该代码适用于项目中只有一个.go文件时调试。
1 { 2 // 使用 IntelliSense 了解相关属性。 3 // 悬停以查看现有属性的描述。 4 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 5 "version": "0.2.0", 6 "configurations": [ 7 { 8 "name": "Launch", 9 "type": "go", 10 "request": "launch", 11 "mode": "auto", 12 "program": "${fileDirname}" 13 } 14 ] 15 }
若项目中有多个.go文件,打开任意一个.go文件都能进行断点调试,launch.json文件代码更新如下:(更改program)
1 { 2 // Use IntelliSense to learn about possible attributes. 3 // Hover to view descriptions of existing attributes. 4 // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 "version": "0.2.0", 6 "configurations": [ 7 { 8 "name": "Launch Package", 9 "type": "go", 10 "request": "launch", 11 "mode": "auto", 12 "program": "${fileDirname}\\${fileBasenameNoExtension}.go" 13 }, 14 ] 15 }
点击视图左侧的资源管理器按钮,可以看到目录下生成launch.json文件。
1.1.5 启动调试和停止调试
点击资源管理器目录下要调试.go文件将其打开,点击视图上方的运行点击启动调试或按下键盘键F5进行调试。
还可以点击运行和调试界面中的开始调试按钮进行调试
在视图上方看到调试工具,调试运行成功,正在运行的断点会出现黄色边框,点击调试工具的红色正方形或快捷键Shift+F5停止调试。视图左下方可以看到断点数据,可以进行断点的相关操作。
在调试的状态下,目录中会出现调试包:__debug_bin1875079819.exe,停止调试后就没有了。