我正在使用 VS 代码编辑器在 go 中编写 CLI。我无法弄清楚如何调试代码部分。
我的目录结构是:
- test
- main.go
- cmd
- login.go
- root.go
我已在 login.go 中设置断点,但如果我在此文件中运行“开始调试”,则会出现错误
Can not debug non-main package
Process exiting with code: 1
我尝试在 main.go 中运行调试器,但调试器不会转到 login.go 文件,因为我们没有明确编写test login
API server listening at: 127.0.0.1:48423
A longer description that spans multiple lines and likely contains
examples and usage of using your application. For example:
cd .
Cobra is a CLI library for Go that empowers applications.
This application is a tool to generate the needed files
to quickly create a Cobra application.
Usage:
test [command]
Available Commands:
help Help about any command
login A brief description of your command
Flags:
--config string config file (default is $HOME/.test.yaml)
-h, --help help for test
-t, --toggle Help message for toggle
Use "test [command] --help" for more information about a command.
main.go文件
package main
import "test/cmd"
func main() {
cmd.Execute()
}
login.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")
}
settings.json
{
"go.gopath":"/Users/deepakpatankar/go"
}
请指导我如何在调试模式下查看变量值,例如变量名称。虽然使用 Println 很好,但是这个源代码是一个更大项目的一部分,所以我想看看如何使用调试器?
小怪兽爱吃肉
HUH函数
相关分类