VS代码中除main.go以外的调试文件
我正在使用VS代码编辑器在go中编写CLI。我不知道如何调试代码段 我的目录结构是:VS代码中除main.go以外的调试文件,go,visual-studio-code,delve,go-cobra,Go,Visual Studio Code,Delve,Go Cobra,我正在使用VS代码编辑器在go中编写CLI。我不知道如何调试代码段 我的目录结构是: - test - main.go - cmd - login.go - root.go 我在login.go中设置了断点,但如果在此文件中运行启动调试,则会出现错误 我尝试在main.go中运行调试器,但调试器不会转到login.go文件,因为我们没有显式编写测试登录 main.go文件 login.go文件 settings.json launch.json 请指导我如何在调试模式下
- test
- main.go
- cmd
- login.go
- root.go
我在login.go中设置了断点,但如果在此文件中运行启动调试,则会出现错误
我尝试在main.go中运行调试器,但调试器不会转到login.go文件,因为我们没有显式编写测试登录
main.go文件
login.go文件
settings.json
launch.json
请指导我如何在调试模式下查看变量值,如变量名。虽然使用Println很好,但此源代码是一个更大项目的一部分,因此我想看看如何使用调试器?您可以在vscode设置中向args:[]数组添加标志,如下所示:
"args": ["login", "-u", "username", "-p", "password"]
这将确保在运行debug时,登录命令中包含给定的标志。修改launch.json,如下所示:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}",
"env": {},
"args": [],
"port": 8080,
"host": "127.0.0.1"
}
]
}
你会发现你和你的有些不同
...
"mode": "debug",
"program": "${workspaceRoot}",
...
你能添加你的.vscode设置吗?谢谢Blokje5,这个解决方案适合我。我在launch.json中添加了上述给定行。嘿,阿里,谢谢你的回答。现在使用您的建议,我不需要在启动调试器之前转到main.go。很高兴它对您有所帮助
package cmd
import (
"fmt"
"github.com/spf13/cobra"
)
// loginCmd represents the login command
var loginCmd = &cobra.Command{
Run: func(cmd *cobra.Command, args []string) {
fmt.Println("login called")
name, _ := cmd.Flags().GetString("username")
pwd, _ := cmd.Flags().GetString("password")
userInfo := name + ":" + pwd
},
}
func init() {
rootCmd.AddCommand(loginCmd)
// Here you will define your flags and configuration settings.
loginCmd.Flags().StringP("username", "u", "", "Specifies the user")
loginCmd.Flags().StringP("password", "p", "", "Specifies the password for the user")
loginCmd.Flags().StringP("manager", "m", "", "Specifies the environement where user wants to login")
}
{
"go.gopath":"/Users/deepakpatankar/go"
}
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${fileDirname}",
"env": {},
"args": []
}
]
}
"args": ["login", "-u", "username", "-p", "password"]
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}",
"env": {},
"args": [],
"port": 8080,
"host": "127.0.0.1"
}
]
}
...
"mode": "debug",
"program": "${workspaceRoot}",
...