Skip to content

Commit

Permalink
Merge branch 'master' into dapreverse
Browse files Browse the repository at this point in the history
  • Loading branch information
hyangah committed Sep 24, 2021
2 parents d974e4d + c7e2a9b commit 596c5ba
Show file tree
Hide file tree
Showing 579 changed files with 172,954 additions and 28,064 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@
.tags*
tags
.dbg_history
cmd/dlv/dlv
**/**/dlv
.vagrant
**/*.swp
localtests
.idea
*.iml
.teamcity/target
.vscode
**/*.o
21 changes: 12 additions & 9 deletions .teamcity/settings.kts
Original file line number Diff line number Diff line change
Expand Up @@ -35,23 +35,23 @@ To debug in IntelliJ Idea, open the 'Maven Projects' tool window (View
version = "2020.2"

val targets = arrayOf(
"linux/amd64/1.14",
"linux/amd64/1.15",
"linux/amd64/1.16",
"linux/amd64/1.17",
"linux/amd64/tip",

"linux/386/1.16",
"linux/386/1.17",

"linux/arm64/1.16",
"linux/arm64/1.17",
"linux/arm64/tip",

"windows/amd64/1.16",
"windows/amd64/1.17",
"windows/amd64/tip",

"mac/amd64/1.16",
"mac/amd64/1.17",
"mac/amd64/tip",

"mac/arm64/1.16",
"mac/arm64/1.17",
"mac/arm64/tip"
)

Expand All @@ -68,6 +68,9 @@ project {
}))
}
buildType(AggregatorBuild(tests))
params {
param("teamcity.ui.settings.readOnly", "true")
}
}

class AggregatorBuild(tests: Collection<BuildType>) : BuildType({
Expand Down Expand Up @@ -95,7 +98,7 @@ class AggregatorBuild(tests: Collection<BuildType>) : BuildType({
vcsRootExtId = "${DslContext.settingsRoot.id}"
provider = github {
authType = token {
token = "credentialsJSON:a7e7526c-7195-4790-bbb6-9fb4692f92d0"
token = "credentialsJSON:1312c856-0e13-4b04-8c40-ac26d4a5f700"
}
filterAuthorRole = PullRequests.GitHubRoleFilter.EVERYBODY
}
Expand All @@ -105,7 +108,7 @@ class AggregatorBuild(tests: Collection<BuildType>) : BuildType({
publisher = github {
githubUrl = "https://api.github.com"
authType = personalToken {
token = "credentialsJSON:a7e7526c-7195-4790-bbb6-9fb4692f92d0"
token = "credentialsJSON:1312c856-0e13-4b04-8c40-ac26d4a5f700"
}
}
param("github_oauth_user", "")
Expand Down Expand Up @@ -234,7 +237,7 @@ class TestBuild(val os: String, val arch: String, version: String, buildId: Abso
vcsRootExtId = "${DslContext.settingsRoot.id}"
provider = github {
authType = token {
token = "credentialsJSON:a7e7526c-7195-4790-bbb6-9fb4692f92d0"
token = "credentialsJSON:1312c856-0e13-4b04-8c40-ac26d4a5f700"
}
filterAuthorRole = PullRequests.GitHubRoleFilter.EVERYBODY
}
Expand Down
101 changes: 101 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,109 @@

# Changelog

All notable changes to this project will be documented in this file.
This project adheres to Semantic Versioning.

## [1.7.2] 2021-09-21

### Added

* Documentation: Add notes on porting Delve to other architectures (@aarzilli)
* Add internal checks to ensure we're synched with Go runtime internals (@aarzilli)
* eBPF backend can parse goroutine info (@derekparker)
* Add support for debuginfo-find (@derekparker)
* Add MAKE arguments for GOOS / GOARCH (@cmol)

### Fixed

* Correctly check for 1.17 and regabi (@aarzilli)
* Print config output strings quouted (@aarzilli, @krobelus)
* Update check for system goroutines (@suzmue)
* DAP: Halt before detach in Stop (@polinasok)
* DAP: Do not send halt request if debuggee is not running (@suzmue)

### Changed

* Include selected goroutine in threads request (@suzmue)
* Remove individual OS install instructions (@gabriel-vasile)
* DAP: Show decimal / hex values for uint (@suzmue)
* Avoid bright colors in default syntax highlighting (@krobelus)

## [1.7.1] 2021-08-18

### Added

- *EXPERIMENTAL* Added support for eBPF based trace backend (@derekparker)
- Added fuzzy completion for the CLI for commands and breakpoint locations (@derekparker)
- Added stack watchpoints (@aarzilli)
- Added verbose version output (@hyangah)
- DAP: Support for replay and core modes (@Iggomez)
- DAP: Added ability to page stack frames (@suzmue)
- DAP: Added len as metadata for maps (@suzmue)
- DAP: Add 'backend' launch/attach attribute (@polinasok)

### Fixed

- Fix handling of runtime throws (@derekparker)
- DAP: Handle unexpected debugger termination (@polinasok)

### Changed

- Added configuration for Target to not clear stepping breakpoints (@suzmue)
- Ignore existing breakpoints for continue-until (@derekparker)
- Improve help output for examinemem (@derekparker)
- Clarify next-while-nexting error (@suzmue)
- DWARF improvements for additional opcodes (@aarzilli)
- Treat SIGTERM as server disconnect signal (@polinasok)
- Update Cobra lib to v1.1.3 (@hyangah)
- Improvements to 'on' command (@aarzilli)
- Terminal will now prompt when breakpoint is hit during next/step/stepout (@aarzilli)
- DAP: Ensure server is always headless and target foregrounded (@polinasok)
- DAP: Set hit breakpoint IDs (@suzmue)

## [1.7.0] 2021-07-19

### Added

- Go 1.17 support (@aarzilli, @mknyszek)
- Add new API and terminal command for setting watchpoints (@aarzilli)
- Add filtering and grouping to goroutines command (@aarzilli)
- Added support for hit count condition on breakpoints (@suzmue, @aarzilli)
- DAP server: Handle SetVariable requests (@hyangah)
- DAP server: Add clipboard support (@hyangah)

### Fixed

- DAP server: Several shutdown / disconnect fixes (@suzmue, @polinasok)
- DAP server: Clean output executable name on Windows (@hyangah)
- DAP server: Variables response must not have null variables array (@polinasok)
- Fix runtimeTypeToDIE setup (necessary for Go 1.17) (@aarzilli)
- Reenable CGO stacktrace test on arm64 (@derekparker)
- Fix incorrect integer casts in freebsd C backend (@dwagin)
- Ensure correct exit status reported on commands following process death (@derekparker)
- Misc flakey test fixes / test refactoring (@polinasok)
- Fix for frame parameter being ignored in ConvertEvalScope when no goroutine is found (@suzmue)
- Ensure ContinueOnce returns StopExited if process exited, otherwise return StopUnknown (@polinasok)
- Fix panic in RPC2.ListDynamicLibraries (@derekparker)
- Fix typo in flag passed to check if debugserver supports unmask_signals (@staugust)

### Changed

- DAP server: Add sameuser security check (@hyangah)
- DAP server: Changes to context-dependent load limits for string type (@hyangah, @polinasok)
- DAP server: Add paging for arrays, slices and maps (@suzmue)
- DAP server: Deemphasize internal runtime stack frames (@suzmue)
- DAP server: Add throw reason to exception information upon panic (@suzmue)
- DAP server: Set breakpoint hit ID (@suzmue)
- DAP server: Add string value of byte/rune slice as child (@suzmue)
- Documentation: Add viminspector to list of editor plugins (@aarzilli)
- Support for ZMM registers in gdbserial backend (@aarzilli)
- Remove support for stack barriers (@derekparker)
- Improve support for DWARF5 (@derekparker)
- Improve documentation (@derekparker, @aarzilli)
- Print message and exit if Delve detects it is running under Rosetta on M1 macs (@aarzilli)
- Drop official Go 1.14 support (@derekparker)

## [1.6.1] 2021-05-18

### Added
Expand Down
24 changes: 12 additions & 12 deletions Documentation/backend_test_health.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,31 @@
Tests skipped by each supported backend:

* 386 skipped = 6
* 386 skipped = 7
* 1 broken
* 3 broken - cgo stacktraces
* 2 not implemented
* arm64 skipped = 4
* 3 not implemented
* arm64 skipped = 5
* 1 broken
* 1 broken - global variable symbolication
* 2 not implemented
* darwin skipped = 2
* 2 not implemented
* 3 not implemented
* darwin skipped = 3
* 3 not implemented
* darwin/arm64 skipped = 1
* 1 broken - cgo stacktraces
* darwin/lldb skipped = 1
* 1 upstream issue
* freebsd skipped = 14
* freebsd skipped = 15
* 11 broken
* 3 not implemented
* 4 not implemented
* linux/386/pie skipped = 1
* 1 broken
* linux/arm64 skipped = 1
* 1 broken - cgo stacktraces
* pie skipped = 2
* 2 upstream issue - https://github.com/golang/go/issues/29322
* rr skipped = 2
* 2 not implemented
* windows skipped = 4
* rr skipped = 3
* 3 not implemented
* windows skipped = 5
* 1 broken
* 2 not implemented
* 3 not implemented
* 1 upstream issue
21 changes: 18 additions & 3 deletions Documentation/cli/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ Command | Description
--------|------------
[args](#args) | Print function arguments.
[display](#display) | Print value of an expression every time the program stops.
[examinemem](#examinemem) | Examine memory:
[examinemem](#examinemem) | Examine raw memory at the given address.
[locals](#locals) | Print local variables.
[print](#print) | Evaluate an expression.
[regs](#regs) | Print contents of CPU registers.
Expand Down Expand Up @@ -114,6 +114,10 @@ Aliases: b

## breakpoints
Print out info for active breakpoints.

breakpoints [-a]

Specifying -a prints all physical breakpoint, including internal breakpoints.

Aliases: bp

Expand Down Expand Up @@ -291,6 +295,8 @@ If locspec is omitted edit will open the current source file in the editor, othe
Aliases: ed

## examinemem
Examine raw memory at the given address.

Examine memory:

examinemem [-fmt <format>] [-count|-len <count>] [-size <size>] <address>
Expand Down Expand Up @@ -464,9 +470,18 @@ Aliases: n
## on
Executes a command when a breakpoint is hit.

on <breakpoint name or id> <command>.
on <breakpoint name or id> <command>
on <breakpoint name or id> -edit


Supported commands: print, stack, goroutine, trace and cond.
To convert a breakpoint into a tracepoint use:

on <breakpoint name or id> trace

The command 'on <bp> cond <cond-arguments>' is equivalent to 'cond <bp> <cond-arguments>'.

Supported commands: print, stack and goroutine)
The command 'on x -edit' can be used to edit the list of commands executed when the breakpoint is hit.


## print
Expand Down
4 changes: 3 additions & 1 deletion Documentation/cli/starlark.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ clear_breakpoint(Id, Name) | Equivalent to API call [ClearBreakpoint](https://go
clear_checkpoint(ID) | Equivalent to API call [ClearCheckpoint](https://godoc.org/github.com/go-delve/delve/service/rpc2#RPCServer.ClearCheckpoint)
raw_command(Name, ThreadID, GoroutineID, ReturnInfoLoadConfig, Expr, UnsafeCall) | Equivalent to API call [Command](https://godoc.org/github.com/go-delve/delve/service/rpc2#RPCServer.Command)
create_breakpoint(Breakpoint) | Equivalent to API call [CreateBreakpoint](https://godoc.org/github.com/go-delve/delve/service/rpc2#RPCServer.CreateBreakpoint)
create_ebpf_tracepoint(FunctionName) | Equivalent to API call [CreateEBPFTracepoint](https://godoc.org/github.com/go-delve/delve/service/rpc2#RPCServer.CreateEBPFTracepoint)
create_watchpoint(Scope, Expr, Type) | Equivalent to API call [CreateWatchpoint](https://godoc.org/github.com/go-delve/delve/service/rpc2#RPCServer.CreateWatchpoint)
detach(Kill) | Equivalent to API call [Detach](https://godoc.org/github.com/go-delve/delve/service/rpc2#RPCServer.Detach)
disassemble(Scope, StartPC, EndPC, Flavour) | Equivalent to API call [Disassemble](https://godoc.org/github.com/go-delve/delve/service/rpc2#RPCServer.Disassemble)
Expand All @@ -37,10 +38,11 @@ examine_memory(Address, Length) | Equivalent to API call [ExamineMemory](https:/
find_location(Scope, Loc, IncludeNonExecutableLines, SubstitutePathRules) | Equivalent to API call [FindLocation](https://godoc.org/github.com/go-delve/delve/service/rpc2#RPCServer.FindLocation)
function_return_locations(FnName) | Equivalent to API call [FunctionReturnLocations](https://godoc.org/github.com/go-delve/delve/service/rpc2#RPCServer.FunctionReturnLocations)
get_breakpoint(Id, Name) | Equivalent to API call [GetBreakpoint](https://godoc.org/github.com/go-delve/delve/service/rpc2#RPCServer.GetBreakpoint)
get_buffered_tracepoints() | Equivalent to API call [GetBufferedTracepoints](https://godoc.org/github.com/go-delve/delve/service/rpc2#RPCServer.GetBufferedTracepoints)
get_thread(Id) | Equivalent to API call [GetThread](https://godoc.org/github.com/go-delve/delve/service/rpc2#RPCServer.GetThread)
is_multiclient() | Equivalent to API call [IsMulticlient](https://godoc.org/github.com/go-delve/delve/service/rpc2#RPCServer.IsMulticlient)
last_modified() | Equivalent to API call [LastModified](https://godoc.org/github.com/go-delve/delve/service/rpc2#RPCServer.LastModified)
breakpoints() | Equivalent to API call [ListBreakpoints](https://godoc.org/github.com/go-delve/delve/service/rpc2#RPCServer.ListBreakpoints)
breakpoints(All) | Equivalent to API call [ListBreakpoints](https://godoc.org/github.com/go-delve/delve/service/rpc2#RPCServer.ListBreakpoints)
checkpoints() | Equivalent to API call [ListCheckpoints](https://godoc.org/github.com/go-delve/delve/service/rpc2#RPCServer.ListCheckpoints)
dynamic_libraries() | Equivalent to API call [ListDynamicLibraries](https://godoc.org/github.com/go-delve/delve/service/rpc2#RPCServer.ListDynamicLibraries)
function_args(Scope, Cfg) | Equivalent to API call [ListFunctionArgs](https://godoc.org/github.com/go-delve/delve/service/rpc2#RPCServer.ListFunctionArgs)
Expand Down
3 changes: 2 additions & 1 deletion Documentation/installation/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Installation
The following instructions are known to work on Linux, macOS, Windows and FreeBSD.

Clone the git repository and build:

Expand All @@ -14,7 +15,7 @@ On Go version 1.16 or later, this command will also work:
$ go install github.com/go-delve/delve/cmd/dlv@latest
```

See `go help install` for details on where the `dlv` executable is saved.
See `go help install` for details on where the `dlv` executable is saved.

If during the install step you receive an error similar to this:

Expand Down
3 changes: 2 additions & 1 deletion Documentation/internal/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Internal Documentation

[Architecture of Delve slides](https://speakerdeck.com/aarzilli/internal-architecture-of-delve).
* [Architecture of Delve slides](https://speakerdeck.com/aarzilli/internal-architecture-of-delve).
* [Notes on porting Delve to other architectures](portnotes.md)

TODO(derekparker)

Expand Down
Loading

0 comments on commit 596c5ba

Please sign in to comment.