закешированный к нам в целях безопасности дебаггер
Go to file
Alessandro Arzilli f0a32c8e1b
Go 1.17 support branch (#2451)
* proc: support new Go 1.17 panic/defer mechanism

Go 1.17 will create wrappers for deferred calls that take arguments.
Change defer reading code so that wrappers are automatically unwrapped.

Also the deferred function is called directly by runtime.gopanic, without going through runtime.callN which means that sometimes when a panic happens the stack is either:

0. deferred function call
1. deferred call wrapper
2. runtime.gopanic

or:

0. deferred function call
1. runtime.gopanic

instead of always being:

0. deferred function call
1. runtime.callN
2. runtime.gopanic

the isPanicCall check is changed accordingly.

* test: miscellaneous minor test fixes for Go 1.17

* proc: resolve inlined calls when stepping out of runtime.breakpoint

Calls to runtime.Breakpoint are inlined in Go 1.17 when inlining is
enabled, resolve inlined calls in stepInstructionOut.

* proc: add support for debugCallV2 with regabi

This change adds support for the new debug call protocol which had to
change for the new register ABI introduced in Go 1.17.

Summary of changes:
- Abstracts over the debug call version depending on the Go version
  found in the binary.
- Uses R12 instead of RAX as the debug protocol register when the binary
  is from Go 1.17 or later.
- Creates a variable directly from the DWARF entry for function
  arguments to support passing arguments however the ABI expects.
- Computes a very conservative stack frame size for the call when
  injecting a call into a Go process whose version is >=1.17.

Co-authored-by: Michael Anthony Knyszek <mknyszek@google.com>
Co-authored-by: Alessandro Arzilli <alessandro.arzilli@gmail.com>

* TeamCity: enable tests on go-tip

* goversion: version compatibility bump

* TeamCity: fix go-tip builds on macOS/arm64

Co-authored-by: Michael Anthony Knyszek <mknyszek@google.com>
2021-07-08 08:47:53 -07:00
_fixtures Go 1.17 support branch (#2451) 2021-07-08 08:47:53 -07:00
_scripts Go 1.17 support branch (#2451) 2021-07-08 08:47:53 -07:00
.teamcity TeamCity: add mac/arm64 build and use DelveBot account (#2368) 2021-03-04 18:38:56 +01:00
assets Add high-res images 2015-05-19 12:25:26 -05:00
cmd/dlv terminal,service: Add filtering and grouping to goroutines command (#2504) 2021-07-01 11:25:33 -07:00
Documentation pkg/proc: fix bug where frame parameter is ignored if no goroutine (#2563) 2021-07-03 15:48:35 +02:00
pkg Go 1.17 support branch (#2451) 2021-07-08 08:47:53 -07:00
service Go 1.17 support branch (#2451) 2021-07-08 08:47:53 -07:00
vendor go.mod: update google/go-dap to 0.5.0 (#2460) 2021-05-04 12:33:50 -07:00
.cirrus.yml *: Update freebsd image 2020-04-08 11:40:24 +02:00
.deepsource.toml Continuous Integration cleanup (#2369) 2021-03-08 09:35:56 -08:00
.gitattributes makefile: use git's $Id$ instead of setting ver.Build in makefile (#807) 2017-04-28 10:14:33 -07:00
.gitignore *: Add .vscode to .gitignore (#2554) 2021-06-26 09:16:35 +02:00
CHANGELOG.md all: v1.6.1 2021-05-19 09:24:05 +02:00
CONTRIBUTING.md README: Remove gitter chat link. 2020-01-21 09:06:53 -08:00
go.mod go.mod: update google/go-dap to 0.5.0 (#2460) 2021-05-04 12:33:50 -07:00
go.sum go.mod: update google/go-dap to 0.5.0 (#2460) 2021-05-04 12:33:50 -07:00
ISSUE_TEMPLATE.md misc: Include issue template for GitHub 2016-03-03 10:40:14 -08:00
LICENSE Add License and README 2014-05-03 15:31:52 -05:00
Makefile *: mv scripts _scripts 2020-03-28 20:28:51 +01:00
README.md Change TeamCity test matrix and drop appveyor/travis-ci configurations (#2315) 2021-01-25 20:48:27 -08:00

Delve

license GoDoc Build Status

The GitHub issue tracker is for bugs only. Please use the developer mailing list for any feature proposals and discussions.

About Delve

Delve is a debugger for the Go programming language. The goal of the project is to provide a simple, full featured debugging tool for Go. Delve should be easy to invoke and easy to use. Chances are if you're using a debugger, things aren't going your way. With that in mind, Delve should stay out of your way as much as possible.