From dc3fca3f7b32c86833c940927815292ef126bc32 Mon Sep 17 00:00:00 2001 From: Alessandro Arzilli Date: Sun, 28 Jul 2019 01:44:48 +0200 Subject: [PATCH] service: add backend to GetVersion response (#1641) Implements #1640 --- service/api/types.go | 1 + service/debugger/debugger.go | 21 +++++++++++++++++++++ service/rpccommon/server.go | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/service/api/types.go b/service/api/types.go index 95e55b94..cc2117ff 100644 --- a/service/api/types.go +++ b/service/api/types.go @@ -415,6 +415,7 @@ type GetVersionIn struct { type GetVersionOut struct { DelveVersion string APIVersion int + Backend string // backend currently in use } // SetAPIVersionIn is the input for SetAPIVersion. diff --git a/service/debugger/debugger.go b/service/debugger/debugger.go index 7f2531e8..1aee669c 100644 --- a/service/debugger/debugger.go +++ b/service/debugger/debugger.go @@ -1207,6 +1207,27 @@ func (d *Debugger) ListDynamicLibraries() []api.Image { return r } +func (d *Debugger) GetVersion(out *api.GetVersionOut) error { + if d.config.CoreFile != "" { + if d.config.Backend == "rr" { + out.Backend = "rr" + } else { + out.Backend = "core" + } + } else { + if d.config.Backend == "default" { + if runtime.GOOS == "darwin" { + out.Backend = "lldb" + } else { + out.Backend = "native" + } + } else { + out.Backend = d.config.Backend + } + } + return nil +} + func go11DecodeErrorCheck(err error) error { if _, isdecodeerr := err.(dwarf.DecodeError); !isdecodeerr { return err diff --git a/service/rpccommon/server.go b/service/rpccommon/server.go index 470b4914..3d624389 100644 --- a/service/rpccommon/server.go +++ b/service/rpccommon/server.go @@ -387,7 +387,7 @@ func (cb *RPCCallback) Return(out interface{}, err error) { func (s *RPCServer) GetVersion(args api.GetVersionIn, out *api.GetVersionOut) error { out.DelveVersion = version.DelveVersion.String() out.APIVersion = s.s.config.APIVersion - return nil + return s.s.debugger.GetVersion(out) } // Changes version of the API being served. -- GitLab