pkg/goversion: visibly warn the user with --check-go-version=false (#2684)
Co-authored-by: Polina Sokolova <polinasok@users.noreply.github.com>
This commit is contained in:
parent
038cd99b73
commit
efc4483175
@ -23,7 +23,7 @@ Pass flags to the program you are debugging using `--`, for example:
|
|||||||
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
||||||
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
||||||
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
||||||
--check-go-version Checks that the version of Go in use is compatible with Delve. (default true)
|
--check-go-version Exits if the version of Go in use is not compatible (too old or too new) with the version of Delve. (default true)
|
||||||
--disable-aslr Disables address space randomization
|
--disable-aslr Disables address space randomization
|
||||||
--headless Run debug server only, in headless mode.
|
--headless Run debug server only, in headless mode.
|
||||||
-h, --help help for dlv
|
-h, --help help for dlv
|
||||||
|
|||||||
@ -30,7 +30,7 @@ dlv attach pid [executable] [flags]
|
|||||||
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
||||||
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
||||||
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
||||||
--check-go-version Checks that the version of Go in use is compatible with Delve. (default true)
|
--check-go-version Exits if the version of Go in use is not compatible (too old or too new) with the version of Delve. (default true)
|
||||||
--disable-aslr Disables address space randomization
|
--disable-aslr Disables address space randomization
|
||||||
--headless Run debug server only, in headless mode.
|
--headless Run debug server only, in headless mode.
|
||||||
--init string Init file, executed by the terminal client.
|
--init string Init file, executed by the terminal client.
|
||||||
|
|||||||
@ -28,7 +28,7 @@ are:
|
|||||||
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
||||||
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
||||||
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
||||||
--check-go-version Checks that the version of Go in use is compatible with Delve. (default true)
|
--check-go-version Exits if the version of Go in use is not compatible (too old or too new) with the version of Delve. (default true)
|
||||||
--disable-aslr Disables address space randomization
|
--disable-aslr Disables address space randomization
|
||||||
--headless Run debug server only, in headless mode.
|
--headless Run debug server only, in headless mode.
|
||||||
--init string Init file, executed by the terminal client.
|
--init string Init file, executed by the terminal client.
|
||||||
|
|||||||
@ -24,7 +24,7 @@ dlv connect addr [flags]
|
|||||||
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
||||||
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
||||||
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
||||||
--check-go-version Checks that the version of Go in use is compatible with Delve. (default true)
|
--check-go-version Exits if the version of Go in use is not compatible (too old or too new) with the version of Delve. (default true)
|
||||||
--disable-aslr Disables address space randomization
|
--disable-aslr Disables address space randomization
|
||||||
--headless Run debug server only, in headless mode.
|
--headless Run debug server only, in headless mode.
|
||||||
--init string Init file, executed by the terminal client.
|
--init string Init file, executed by the terminal client.
|
||||||
|
|||||||
@ -30,7 +30,7 @@ dlv core <executable> <core> [flags]
|
|||||||
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
||||||
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
||||||
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
||||||
--check-go-version Checks that the version of Go in use is compatible with Delve. (default true)
|
--check-go-version Exits if the version of Go in use is not compatible (too old or too new) with the version of Delve. (default true)
|
||||||
--disable-aslr Disables address space randomization
|
--disable-aslr Disables address space randomization
|
||||||
--headless Run debug server only, in headless mode.
|
--headless Run debug server only, in headless mode.
|
||||||
--init string Init file, executed by the terminal client.
|
--init string Init file, executed by the terminal client.
|
||||||
|
|||||||
@ -38,7 +38,7 @@ dlv dap [flags]
|
|||||||
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
||||||
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
||||||
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
||||||
--check-go-version Checks that the version of Go in use is compatible with Delve. (default true)
|
--check-go-version Exits if the version of Go in use is not compatible (too old or too new) with the version of Delve. (default true)
|
||||||
--disable-aslr Disables address space randomization
|
--disable-aslr Disables address space randomization
|
||||||
--headless Run debug server only, in headless mode.
|
--headless Run debug server only, in headless mode.
|
||||||
--init string Init file, executed by the terminal client.
|
--init string Init file, executed by the terminal client.
|
||||||
|
|||||||
@ -32,7 +32,7 @@ dlv debug [package] [flags]
|
|||||||
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
||||||
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
||||||
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
||||||
--check-go-version Checks that the version of Go in use is compatible with Delve. (default true)
|
--check-go-version Exits if the version of Go in use is not compatible (too old or too new) with the version of Delve. (default true)
|
||||||
--disable-aslr Disables address space randomization
|
--disable-aslr Disables address space randomization
|
||||||
--headless Run debug server only, in headless mode.
|
--headless Run debug server only, in headless mode.
|
||||||
--init string Init file, executed by the terminal client.
|
--init string Init file, executed by the terminal client.
|
||||||
|
|||||||
@ -32,7 +32,7 @@ dlv exec <path/to/binary> [flags]
|
|||||||
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
||||||
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
||||||
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
||||||
--check-go-version Checks that the version of Go in use is compatible with Delve. (default true)
|
--check-go-version Exits if the version of Go in use is not compatible (too old or too new) with the version of Delve. (default true)
|
||||||
--disable-aslr Disables address space randomization
|
--disable-aslr Disables address space randomization
|
||||||
--headless Run debug server only, in headless mode.
|
--headless Run debug server only, in headless mode.
|
||||||
--init string Init file, executed by the terminal client.
|
--init string Init file, executed by the terminal client.
|
||||||
|
|||||||
@ -43,7 +43,7 @@ and dap modes.
|
|||||||
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
||||||
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
||||||
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
||||||
--check-go-version Checks that the version of Go in use is compatible with Delve. (default true)
|
--check-go-version Exits if the version of Go in use is not compatible (too old or too new) with the version of Delve. (default true)
|
||||||
--disable-aslr Disables address space randomization
|
--disable-aslr Disables address space randomization
|
||||||
--headless Run debug server only, in headless mode.
|
--headless Run debug server only, in headless mode.
|
||||||
--init string Init file, executed by the terminal client.
|
--init string Init file, executed by the terminal client.
|
||||||
|
|||||||
@ -31,7 +31,7 @@ File redirects can also be changed using the 'restart' command.
|
|||||||
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
||||||
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
||||||
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
||||||
--check-go-version Checks that the version of Go in use is compatible with Delve. (default true)
|
--check-go-version Exits if the version of Go in use is not compatible (too old or too new) with the version of Delve. (default true)
|
||||||
--disable-aslr Disables address space randomization
|
--disable-aslr Disables address space randomization
|
||||||
--headless Run debug server only, in headless mode.
|
--headless Run debug server only, in headless mode.
|
||||||
--init string Init file, executed by the terminal client.
|
--init string Init file, executed by the terminal client.
|
||||||
|
|||||||
@ -28,7 +28,7 @@ dlv replay [trace directory] [flags]
|
|||||||
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
||||||
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
||||||
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
||||||
--check-go-version Checks that the version of Go in use is compatible with Delve. (default true)
|
--check-go-version Exits if the version of Go in use is not compatible (too old or too new) with the version of Delve. (default true)
|
||||||
--disable-aslr Disables address space randomization
|
--disable-aslr Disables address space randomization
|
||||||
--headless Run debug server only, in headless mode.
|
--headless Run debug server only, in headless mode.
|
||||||
--init string Init file, executed by the terminal client.
|
--init string Init file, executed by the terminal client.
|
||||||
|
|||||||
@ -20,7 +20,7 @@ dlv run [flags]
|
|||||||
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
||||||
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
||||||
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
||||||
--check-go-version Checks that the version of Go in use is compatible with Delve. (default true)
|
--check-go-version Exits if the version of Go in use is not compatible (too old or too new) with the version of Delve. (default true)
|
||||||
--disable-aslr Disables address space randomization
|
--disable-aslr Disables address space randomization
|
||||||
--headless Run debug server only, in headless mode.
|
--headless Run debug server only, in headless mode.
|
||||||
--init string Init file, executed by the terminal client.
|
--init string Init file, executed by the terminal client.
|
||||||
|
|||||||
@ -34,7 +34,7 @@ dlv test [package] [flags]
|
|||||||
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
||||||
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
||||||
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
||||||
--check-go-version Checks that the version of Go in use is compatible with Delve. (default true)
|
--check-go-version Exits if the version of Go in use is not compatible (too old or too new) with the version of Delve. (default true)
|
||||||
--disable-aslr Disables address space randomization
|
--disable-aslr Disables address space randomization
|
||||||
--headless Run debug server only, in headless mode.
|
--headless Run debug server only, in headless mode.
|
||||||
--init string Init file, executed by the terminal client.
|
--init string Init file, executed by the terminal client.
|
||||||
|
|||||||
@ -38,7 +38,7 @@ dlv trace [package] regexp [flags]
|
|||||||
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
||||||
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
||||||
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
||||||
--check-go-version Checks that the version of Go in use is compatible with Delve. (default true)
|
--check-go-version Exits if the version of Go in use is not compatible (too old or too new) with the version of Delve. (default true)
|
||||||
--disable-aslr Disables address space randomization
|
--disable-aslr Disables address space randomization
|
||||||
--headless Run debug server only, in headless mode.
|
--headless Run debug server only, in headless mode.
|
||||||
--init string Init file, executed by the terminal client.
|
--init string Init file, executed by the terminal client.
|
||||||
|
|||||||
@ -21,7 +21,7 @@ dlv version [flags]
|
|||||||
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
--api-version int Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
|
||||||
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
--backend string Backend selection (see 'dlv help backend'). (default "default")
|
||||||
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
--build-flags string Build flags, to be passed to the compiler. For example: --build-flags="-tags=integration -mod=vendor -cover -v"
|
||||||
--check-go-version Checks that the version of Go in use is compatible with Delve. (default true)
|
--check-go-version Exits if the version of Go in use is not compatible (too old or too new) with the version of Delve. (default true)
|
||||||
--disable-aslr Disables address space randomization
|
--disable-aslr Disables address space randomization
|
||||||
--headless Run debug server only, in headless mode.
|
--headless Run debug server only, in headless mode.
|
||||||
--init string Init file, executed by the terminal client.
|
--init string Init file, executed by the terminal client.
|
||||||
|
|||||||
@ -130,7 +130,7 @@ func New(docCall bool) *cobra.Command {
|
|||||||
rootCommand.PersistentFlags().StringVar(&initFile, "init", "", "Init file, executed by the terminal client.")
|
rootCommand.PersistentFlags().StringVar(&initFile, "init", "", "Init file, executed by the terminal client.")
|
||||||
rootCommand.PersistentFlags().StringVar(&buildFlags, "build-flags", buildFlagsDefault, "Build flags, to be passed to the compiler. For example: --build-flags=\"-tags=integration -mod=vendor -cover -v\"")
|
rootCommand.PersistentFlags().StringVar(&buildFlags, "build-flags", buildFlagsDefault, "Build flags, to be passed to the compiler. For example: --build-flags=\"-tags=integration -mod=vendor -cover -v\"")
|
||||||
rootCommand.PersistentFlags().StringVar(&workingDir, "wd", "", "Working directory for running the program.")
|
rootCommand.PersistentFlags().StringVar(&workingDir, "wd", "", "Working directory for running the program.")
|
||||||
rootCommand.PersistentFlags().BoolVarP(&checkGoVersion, "check-go-version", "", true, "Checks that the version of Go in use is compatible with Delve.")
|
rootCommand.PersistentFlags().BoolVarP(&checkGoVersion, "check-go-version", "", true, "Exits if the version of Go in use is not compatible (too old or too new) with the version of Delve.")
|
||||||
rootCommand.PersistentFlags().BoolVarP(&checkLocalConnUser, "only-same-user", "", true, "Only connections from the same user that started this instance of Delve are allowed to connect.")
|
rootCommand.PersistentFlags().BoolVarP(&checkLocalConnUser, "only-same-user", "", true, "Only connections from the same user that started this instance of Delve are allowed to connect.")
|
||||||
rootCommand.PersistentFlags().StringVar(&backend, "backend", "default", `Backend selection (see 'dlv help backend').`)
|
rootCommand.PersistentFlags().StringVar(&backend, "backend", "default", `Backend selection (see 'dlv help backend').`)
|
||||||
rootCommand.PersistentFlags().StringArrayVarP(&redirects, "redirect", "r", []string{}, "Specifies redirect rules for target process (see 'dlv help redirect')")
|
rootCommand.PersistentFlags().StringArrayVarP(&redirects, "redirect", "r", []string{}, "Specifies redirect rules for target process (see 'dlv help redirect')")
|
||||||
|
|||||||
@ -2,6 +2,8 @@ package goversion
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/go-delve/delve/pkg/logflags"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -9,22 +11,33 @@ var (
|
|||||||
MinSupportedVersionOfGoMinor = 15
|
MinSupportedVersionOfGoMinor = 15
|
||||||
MaxSupportedVersionOfGoMajor = 1
|
MaxSupportedVersionOfGoMajor = 1
|
||||||
MaxSupportedVersionOfGoMinor = 17
|
MaxSupportedVersionOfGoMinor = 17
|
||||||
goTooOldErr = fmt.Errorf("Version of Go is too old for this version of Delve (minimum supported version %d.%d, suppress this error with --check-go-version=false)", MinSupportedVersionOfGoMajor, MinSupportedVersionOfGoMinor)
|
goTooOldErr = fmt.Sprintf("Go version %%s is too old for this version of Delve (minimum supported version %d.%d, suppress this error with --check-go-version=false)", MinSupportedVersionOfGoMajor, MinSupportedVersionOfGoMinor)
|
||||||
dlvTooOldErr = fmt.Errorf("Version of Delve is too old for this version of Go (maximum supported version %d.%d, suppress this error with --check-go-version=false)", MaxSupportedVersionOfGoMajor, MaxSupportedVersionOfGoMinor)
|
goTooOldWarn = fmt.Sprintf("WARNING: undefined behavior - Go version %%s is too old for this version of Delve (minimum supported version %d.%d)", MinSupportedVersionOfGoMajor, MinSupportedVersionOfGoMinor)
|
||||||
|
dlvTooOldErr = fmt.Sprintf("Version of Delve is too old for Go version %%s (maximum supported version %d.%d, suppress this error with --check-go-version=false)", MaxSupportedVersionOfGoMajor, MaxSupportedVersionOfGoMinor)
|
||||||
|
dlvTooOldWarn = fmt.Sprintf("WARNING: undefined behavior - version of Delve is too old for Go version %%s (maximum supported version %d.%d)", MaxSupportedVersionOfGoMajor, MaxSupportedVersionOfGoMinor)
|
||||||
)
|
)
|
||||||
|
|
||||||
// Compatible checks that the version specified in the producer string is compatible with
|
// Compatible checks that the version specified in the producer string is compatible with
|
||||||
// this version of delve.
|
// this version of delve.
|
||||||
func Compatible(producer string) error {
|
func Compatible(producer string, warnonly bool) error {
|
||||||
ver := ParseProducer(producer)
|
ver := ParseProducer(producer)
|
||||||
if ver.IsDevel() {
|
if ver.IsDevel() {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
verstr := fmt.Sprintf("%d.%d.%d", ver.Major, ver.Minor, ver.Rev)
|
||||||
if !ver.AfterOrEqual(GoVersion{MinSupportedVersionOfGoMajor, MinSupportedVersionOfGoMinor, -1, 0, 0, ""}) {
|
if !ver.AfterOrEqual(GoVersion{MinSupportedVersionOfGoMajor, MinSupportedVersionOfGoMinor, -1, 0, 0, ""}) {
|
||||||
return goTooOldErr
|
if warnonly {
|
||||||
|
logflags.WriteError(fmt.Sprintf(goTooOldWarn, verstr))
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return fmt.Errorf(goTooOldErr, verstr)
|
||||||
}
|
}
|
||||||
if ver.AfterOrEqual(GoVersion{MaxSupportedVersionOfGoMajor, MaxSupportedVersionOfGoMinor + 1, -1, 0, 0, ""}) {
|
if ver.AfterOrEqual(GoVersion{MaxSupportedVersionOfGoMajor, MaxSupportedVersionOfGoMinor + 1, -1, 0, 0, ""}) {
|
||||||
return dlvTooOldErr
|
if warnonly {
|
||||||
|
logflags.WriteError(fmt.Sprintf(dlvTooOldWarn, verstr))
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return fmt.Errorf(dlvTooOldErr, verstr)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -136,6 +136,14 @@ func writeListeningMessage(server, addr string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func WriteError(msg string) {
|
||||||
|
if logOut != nil {
|
||||||
|
fmt.Fprintln(logOut, msg)
|
||||||
|
} else {
|
||||||
|
fmt.Fprintln(os.Stderr, msg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var errLogstrWithoutLog = errors.New("--log-output specified without --log")
|
var errLogstrWithoutLog = errors.New("--log-output specified without --log")
|
||||||
|
|
||||||
// Setup sets debugger flags based on the contents of logstr.
|
// Setup sets debugger flags based on the contents of logstr.
|
||||||
|
|||||||
@ -223,9 +223,6 @@ func (d *Debugger) canRestart() bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (d *Debugger) checkGoVersion() error {
|
func (d *Debugger) checkGoVersion() error {
|
||||||
if !d.config.CheckGoVersion {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
if d.isRecording() {
|
if d.isRecording() {
|
||||||
// do not do anything if we are still recording
|
// do not do anything if we are still recording
|
||||||
return nil
|
return nil
|
||||||
@ -234,7 +231,7 @@ func (d *Debugger) checkGoVersion() error {
|
|||||||
if producer == "" {
|
if producer == "" {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
return goversion.Compatible(producer)
|
return goversion.Compatible(producer, !d.config.CheckGoVersion)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Debugger) TargetGoVersion() string {
|
func (d *Debugger) TargetGoVersion() string {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user