Releases: go-delve/delve
v1.26.3
What's Changed
- chore: fix function name in comment to match actual function by @chuanshanjida in #4310
- chore: fix some minor issues by @purelualight in #4316
- cmd/dlv: use goversion.ParseProducer for DW_AT_producer by @croepha in #4307
- pkg/proc: Fix flakiness in TestWaitFor by @typesanitizer in #4306
- Extend feature to print procedure parameters in trace on eBPF backend by @archanaravindar in #4305
- dwarf/godwarf: fix regression debugging DWARFv5 on macOS by @aarzilli in #4315
- *: release version 1.26.3 by @aarzilli in #4318
New Contributors
- @chuanshanjida made their first contribution in #4310
- @purelualight made their first contribution in #4316
- @croepha made their first contribution in #4307
Curated Changelog: https://github.com/go-delve/delve/blob/master/CHANGELOG.md#1263-2026-04-27
Full Changelog: v1.26.2...v1.26.3
v1.26.2
What's Changed
- service/dap,pkg/proc: fix misc test failures by @derekparker in #4273
- dwarf/line: fix PrologueEndPC and FirstStmt by @aarzilli in #4276
- build: add goreleaser release automation with cosign signing by @derekparker in #4278
- pkg/proc,service,pkg/terminal: add stacktrace caching by @aarzilli in #4277
- build: allow release workflow to be manually triggered against a tag by @derekparker in #4283
- service/dap: set seq number for response messages by @aarzilli in #4280
- config,terminal: better documentation for configuration file by @aarzilli in #4282
- _scripts: fallback to calling go if goreleaser is not installed by @aarzilli in #4286
- pkg/terminal,pkg/config: add ability to configure Delve's prompt by @aarzilli in #4284
- service/dap: add build message by @aarzilli in #4287
- service/dap_test: remove dlv help test by @aarzilli in #4290
- dap/command: port examinemem from dlv/terminal by @BrotifyPacha in #4289
- dwarf/op: fix DW_OP_shr and DW_OP_shra evaluation by @cuiweixie in #4296
- service/dap,terminal: cover more cases in examinemem command by @aarzilli in #4300
- proc: clear stepping breakpoints on every target in TargetGroup by @cuiweixie in #4299
- native: return ptrace error from riscv64 setSP by @cuiweixie in #4298
- proc: fix stack watch breaklet index for recorded replay by @cuiweixie in #4295
- pkg/proc: Fix flaky test on Windows by @typesanitizer in #4292
- service/dap: support data breakpoints by @aarzilli in #4294
- pkg/terminal,service: add TypeInfo API by @aarzilli in #4291
- gobuild: fix gocommandRun stdout and stderr streams by @cuiweixie in #4297
- proc/internal/ebpf,build: extend eBPF tracing type support by @derekparker in #4285
- Support printing function parameters with varying verbosity levels [0 .. 4] with the -trace option by @archanaravindar in #4251
- dwarf/godwarf: work around Mach-O section name limitation by @aarzilli in #4304
- *: release version 1.26.2 by @aarzilli in #4309
New Contributors
- @BrotifyPacha made their first contribution in #4289
Curated Changelog: https://github.com/go-delve/delve/blob/master/CHANGELOG.md#1262-2026-04-20
Full Changelog: v1.26.1...v1.26.2
v1.26.1
What's Changed
- *: modernize codebase by @derekparker in #4221
- capslock: update capslock output by @aarzilli in #4224
- proc: fix finding moduledata in 1.26+ by @derekparker in #4228
- lru: remove mutex from lru cache by @aarzilli in #4226
- service/dap: Add hit conditional breakpoint capability by @DrSergei in #4230
- *: downgrade riscv64 by @derekparker in #4232
- proc/internal/ebpf: improve shutdown for polling & ebpf objects by @derekparker in #4231
- goversion: Fix ProducerAfterOrEqual comparison for devel builds by @typesanitizer in #4234
- Propagate short type option when printing structs. by @igadmg in #4235
- service/dap: reject most requests before launch/attach by @aarzilli in #4240
- service/rpccommon: print error when we can't decode request body by @aarzilli in #4247
- service/api: Update waitReason switch for Go 1.27 by @typesanitizer in #4244
- service/debugger: better error if process is already being debugged by @aarzilli in #4242
- pkg/proc: fix ebpf uprobe placement to skip function prologue by @derekparker in #4249
- cmd/dlv: add trace backend parity test by @derekparker in #4250
- Documentation: document AI policy / add agent files by @derekparker in #4248
- proc,service: detect and warn about trimpath by @aarzilli in #4241
- proc: fix TestRangeOverFuncNext for go1.26 on arm64 by @aarzilli in #4254
- goversion: parse rc version with trailing suffix by @alexsaezm in #4255
- terminal/starbind: add 'append_file" built-in func by @sding3 in #4252
- proc: fix sigpanics in swiss map iterator by @derekparker in #4261
- pkg/debugdetect: add package for detecting debugger attachment by @derekparker in #4258
- deps: migrate from gopkg.in/yaml.v3 to go.yaml.in/yaml/v3 by @scop in #4257
- service/api: remove variable formatting helper methods by @aarzilli in #4259
- documentation: updated stale DAP documentation by @stack1ng in #4265
- proc: support debugging stripped non-Go binaries by @derekparker in #4263
- service/dap: better error messages when we can't launch the debugger by @aarzilli in #4264
- pkg/terminal/starbind: remove some duplicate code by @aarzilli in #4262
- pkg/proc/debuginfod: fix debuginfod download progress by @aarzilli in #4270
- proc: Remove special-casing for 1.23 in tests by @typesanitizer in #4271
- *: v1.26.1 by @derekparker in #4272
New Contributors
- @DrSergei made their first contribution in #4230
- @typesanitizer made their first contribution in #4234
- @igadmg made their first contribution in #4235
- @sding3 made their first contribution in #4252
- @stack1ng made their first contribution in #4265
Full Changelog: v1.26.0...v1.26.1
Curated Changelog: https://github.com/go-delve/delve/blob/master/CHANGELOG.md#1261-2026-03-03
v1.26.0
What's Changed
- pkg/goversion: update MinSupportedVersionOfGoMinor by @derekparker in #4108
- service/test: reduce TestGoroutinesGrouping runtime by @derekparker in #4111
- *: modernize codebase with newer syntax / helpers by @derekparker in #4110
- *: update github.com/derekparker/trie by @derekparker in #4107
- *: parallelize tests where possible by @derekparker in #4115
- service: remember that we attached in WaitFor attach mode by @aarzilli in #4120
- cmd/dlv: add capslock check by @derekparker in #4106
- *: install capslock after env var setup on macos by @derekparker in #4122
- service/dap: fix nativeProcess race condition in tests by @derekparker in #4121
- dlv_test: use distinct ports for parallel tests by @aarzilli in #4124
- pkg/proc: optimize range body lookup cost by trie searching and use moduledata cache to reduce LoadModuleData cost by @jayantxie in #4113
- support_sentinel_linux.go: Fixed the ppc64le clause in the file to prevent build failures by @tshah14 in #4129
- terminal: trace /regexp/ should set ret breakpoints correctly by @aarzilli in #4130
- service/dap: Implement suspended breakpoints by @firelizzard18 in #4075
- *: update trie to v3.2.0 by @derekparker in #4131
- go.mod: upgrade simplelru to v2 by @aarzilli in #4143
- debugger: check that breakpoint exists in ClearBreakpoint by @aarzilli in #4141
- proc: return error when calling a non-ptr receiver method on a nil ptr by @aarzilli in #4139
- proc: additional checks parsing g structs by @aarzilli in #4140
- terminal: add shortcut syntax to starlark to access target vars by @aarzilli in #4134
- pkg/proc: fix and improve frame unwind context handling on loong64 by @yelvens in #4133
- pkg/proc: hierarchical search structMember or method by @wenxuan70 in #4118
- proc,service,terminal: allow cancelling of debuginfod downloads by @aarzilli in #4123
- Add flag to retain trace directory after detach by @archanaravindar in #4091
- pkg/proc: add support for function calls on loong64 by @yelvens in #4114
- dlv_test: disable TestUnattendedBreakpoint on FreeBSD by @aarzilli in #4145
- ci/cd: fix codesigning on mac/arm cloud agent by @vietage in #4152
- teamcity: add linux/loong64 to configuration by @yelvens in #4154
- ci/cd: set CI=true on a project level by @vietage in #4156
- Revert "teamcity: add linux/loong64 to configuration (#4154)" by @aarzilli in #4158
- proc/gdbserial: cleanup TestTraceDirCleanup by @aarzilli in #4157
- tests: add missing test cleanup by @aarzilli in #4163
- proc: produce materialized breakpoint event for follow-exec mode by @aarzilli in #4161
- service,proc: fix tests to enable parallel runs by @derekparker in #4135
- pkg/proc: fix nil pointer dereference when calling extra on a nil func by @aarzilli in #4174
- pkg/proc: split off rangeParent from function extras by @aarzilli in #4173
- service/debugger: use address in ClearBreakpoint only when ID is 0 by @aarzilli in #4168
- cmd/dlv: prevent trace killing attached process by @alex-emery in #4164
- service/dap: use exception breakpoints for predefined breakpoints by @aarzilli in #4169
- CI: add windows arm64 workflow by @gdams in #4175
- proc: simplify and rename structMember by @aarzilli in #4159
- proc: add test for interfaces with otherwise unreachable runtime types by @aarzilli in #4096
- terminal: fix wait reason string table by @aarzilli in #4182
- service/dap: implement input/output redirection by @aarzilli in #4178
- pkg/terminal: lazy init functions trie to reduce unnecessary memory usage by @jayantxie in #4177
- winarm64: remove experimental build tags by @gdams in #4176
- dap: implement readMemory for strings and expose memoryReference by @MistaTwista in #4083
- pkg/terminal: allow custom starlark commands to be used in on prefix by @derekparker in #4170
- Add log for build argument by @pedia in #4185
- replay subcommand must keep trace directory. by @lwintermelon in #4184
- pkg/dwarf: do not insist stmt is same line as entry by @derekparker in #4186
- Add support to trace defer function calls under trace follow option by @archanaravindar in #3978
- teamcity: Add support for riscv64 architecture in settings by @mengzhuo in #4189
- pkg/proc: guard register logging from nil pointer dereferences by @aarzilli in #4188
- service: workaround for non-unicode strings in Variables by @aarzilli in #4082
- service/dap: add target command in console and support follow-exec in DAP interface by @Lslightly in #4078
- Add savestate command by @alexsaezm in #4045
- Teamcity: disable riscv64 build due to lack of agent by @aarzilli in #4199
- *: fix tests by @aarzilli in #4198
- test: only run capslock on latest minor version by @aarzilli in #4202
- dap: preserve tags when handling tags by @aarzilli in #4201
- *: fix tests on windows and arm64 for go1.26 by @aarzilli in #4205
- pkg/proc: add way to disable stop-on-error for breakpoint conditions by @aarzilli in #4191
- cmd/dlv,_scripts: move things that use x/tools/go/packages to new repo by @aarzilli in #3990
- pkg/proc: update riscv64 support and fix several tests by @lrzlin in #4190
- Replace github.com/hashicorp/golang-lru with a custom lru cache by @qmuntal in #4196
- fix: go mod vendor by @david-hamilton-glean in #4207
- github: fix issue template by @aarzilli in #4209
- *: update riscv64 capslock file by @derekparker in #4210
- pkg/proc: process spawned event by @firelizzard18 in #4171
- More fixes for Go 1.26 by @aarzilli in #4211
- service/test: disable TestGuessSubstitutePath on riscv64 by @aarzilli in #4212
- service/dap: disable string() field for address-less variables by @aarzilli in #4214
- service/dap: fix restart handling when compilation fails by @aarzilli in #4215
- gdbserial: do not set detached if we kill the process by @aarzilli in #4216
- tests: fix TestFilterGoroutines/TestGoroutineLabels on windows/1.26 by @aarzilli in #4217
- v1.26.0 by @derekparker in #4220
New Contributors
- @tshah14 made their first contribution in #4129
- @firelizzard18 made their first contribution in #4075
- @wenxuan70 made their first contribution in #4118
- @vietage made their first contribution in #4152
- @alex-emery made their first contribution in #4164
- @gdams made their first contribution in #4175
- @MistaTwista made their first contribution in #4083
- @pedia made their first contribution in #4185
- @lwintermelon made their first contribution in #4184
- @mengzhuo made their first contribution in #4189
- @david-hamilton-glean made their first contribution in #4207
Full Changelog: v1.25.2...v1.2...
v1.25.2
What's Changed
- service/dap: fix panic on uninitialized debugger by @derekparker in #4061
- service/dap: fix restart while the target is running by @aarzilli in #4068
- proc: fix nil pointer dereference loading malformed classic maps by @aarzilli in #4067
- service/dap: fix TestConfigurationDoneWithoutDebugSession by @derekparker in #4071
- proc,service,terminal: add events call use it for dld notifications by @aarzilli in #3980
- add support for reading runtime.sigtrampgo context on loong64 by @yelvens in #4098
- pkg/proc: support ContextRegNum on loong64 by @yelvens in #4095
- proc: in-progress calls must be properly terminated by @aarzilli in #4090
- dwarf: using maps.Clone by @cuiweixie in #4088
- proc: early fixes for Go 1.26 by @aarzilli in #4070
- *: fix some failing tests on go1.25 by @aarzilli in #4089
- pkg/proc: add support for additional stack-switching functions on loong64 by @yelvens in #4100
- service/dap: allow clients to specify rebuild on restart by @derekparker in #4103
- pkg/proc: return better error attempting to call nonexistent function by @derekparker in #4062
- *: release version 1.25.2 by @aarzilli in #4104
Curated Changelog: https://github.com/go-delve/delve/blob/master/CHANGELOG.md#1252-2025-08-26
Full Changelog: v1.25.1...v1.25.2
v1.25.1
What's Changed
- proc: handle moving of direct interface flag in Go 1.26 by @randall77 in #4032
- proc: propogate errors from switchToGoroutineStack by @derekparker in #4034
- dwarf/frame: handle unknown opcodes more gracefully by @aarzilli in #4037
- service/dap: add missing response body close by @alexandear in #4039
- pkg,service: simplify tests with slices.Contains by @alexandear in #4040
- pkg/proc: make closure captured vars visible on closure's first line by @aarzilli in #4049
- pkg/proc: fix type cast between slices by @aarzilli in #4048
- For DAP try using debug filename pattern for debug binary path before using random string. fix for #3494 (new Windows Firewall detections) by @rustyoz in #4003
- pkg/goversion: update max supported go minor version by @derekparker in #4046
- service/dap: do not try to access value of unreadable string variables by @aarzilli in #4055
- service/dap: implement restart request by @derekparker in #4057
- service/dap: do not try to stacktrace an unreadable goroutine by @aarzilli in #4056
- *: v1.25.1 by @derekparker in #4059
New Contributors
- @randall77 made their first contribution in #4032
- @rustyoz made their first contribution in #4003
Curated Changelog: https://github.com/go-delve/delve/blob/master/CHANGELOG.md#1251-2025-07-18
Full Changelog: v1.25.0...v1.25.1
v1.25.0
What's Changed
- cmd/dlv: update staticcheck by @aarzilli in #3989
- proc: remove dieToRuntimeType by @aarzilli in #3985
- pkg/terminal: improve TestBreakPointFailWithCond by @alexandear in #3996
- gdbserial: fix call injection with newer versions of macOS by @aarzilli in #3988
- version: use git hash instead of file blob hash for Version.Build by @codeaucafe in #3987
- version: remove build constraint by @aarzilli in #3998
- goversion: fix development version parsing by @aarzilli in #3999
- service/debugger,rpc2,dap: target locking review by @aarzilli in #3997
- terminal/command: Fix typo in goroutines help output by @jersey1dev in #4024
- proc: fix sigpanic in openOnRead by @aarzilli in #4018
- proc/gdbserial: fix out of bounds access reading registers by @aarzilli in #4017
- service/dap: do not attempt further loading on unreadable string vars by @aarzilli in #4016
- proc: fix TestRangeOverFunc for arm64 on go1.25 by @aarzilli in #4014
- proc: fix nil pointer dereference in swiss table iterator by @aarzilli in #4015
- service/dap: fix race condition between disconnect and continue by @aarzilli in #4028
- Exclude internal breakpoints from response by @ConradIrwin in #4027
- proc: fill bi member of constants by @aarzilli in #4026
- *: Release v1.25.0 by @derekparker in #4029
New Contributors
- @codeaucafe made their first contribution in #3987
- @jersey1dev made their first contribution in #4024
- @ConradIrwin made their first contribution in #4027
Curated Changelog: https://github.com/go-delve/delve/blob/master/CHANGELOG.md#1250-2025-04-16
Full Changelog: v1.24.2...v1.25.0
v1.24.2
What's Changed
- *: fix various test problems with go1.25 by @aarzilli in #3946
- proc: add RegnumToString to PPC64LE architecture by @aarzilli in #3944
- goversion: add check for DWARFv5 compatibility by @aarzilli in #3943
- service/debugger: fix FindLocation with child processes by @aarzilli in #3937
- service/test: fix compile error in tests by @aarzilli in #3949
- cmd/dlv: fix typo by @alexandear in #3951
- terminal/command: bind if condition to location earlier by @Lslightly in #3938
- terminal: better question for suspended breakpoints by @aarzilli in #3934
- proc: add support for struct literals by @aarzilli in #3935
- service/test: skip substitutepath test when modules disabled by @derekparker in #3955
- proc/core: skip tests on ppc64le by @derekparker in #3954
- Documentation: fix substitutePath explanation for DAP server by @codesoap in #3952
- proc: do not always allocate struct literals by @aarzilli in #3953
- proc: fix bug telemetry counter increment by @aarzilli in #3967
- proc: skip invalid labels when debugging via Go 1.24 by @hongyuh-hh in #3962
- debugger: acquire missing lock to GuessSubstitutePath by @aarzilli in #3963
- proc: relax DWARFv5 check by @aarzilli in #3961
- fix(debugger): add missing targetMutex protection to CreateWatchpoint() by @BronzeDeer in #3973
- proc: replace Thread.Location method with a function by @aarzilli in #3972
- proc: limit the max length of goroutine's label map (#3928) by @hongyuh-hh in #3968
- fix(services/dap) fix race condition when launching with backend=rr by @BronzeDeer in #3971
- gdbserial: do not abort register reload on the first failed register by @aarzilli in #3966
- service/test: assert error on CreateBreakpoint in TestNextInstruction by @alexandear in #3979
- Release 1.24.2 by @aarzilli in #3983
New Contributors
- @Lslightly made their first contribution in #3938
- @codesoap made their first contribution in #3952
- @hongyuh-hh made their first contribution in #3962
- @BronzeDeer made their first contribution in #3973
Curated Changelog: https://github.com/go-delve/delve/blob/master/CHANGELOG.md#1242-2025-04-10
Full Changelog: v1.24.1...v1.24.2
v1.24.1
What's Changed
- fix check it.Err() != nil but return a nil value error err by @alingse in #3886
- proc: remove leftover fmt.Printf by @aarzilli in #3885
- service/test: disable TestGuessSubstitutePath on TeamCity/linux/tip by @aarzilli in #3890
- pkg/proc/internal/ebpf: Fix uprobe address by @3u13r in #3894
- delete redundancy code. by @zhanluxianshen in #3897
- pkg: refactor sort.Sort to slices.SortFunc by @alexandear in #3880
- proc: remove irrelevant TODO comment by @aarzilli in #3891
- proc: switch to goroutine stack if we make no progress on thread stack by @aarzilli in #3898
- pkg/terminal: support zed editor and allow args in DELVE_EDITOR by @derekparker in #3899
- service/dap: provide process events after launch by @shaunduncan in #3902
- support linux-loong64 native debug by @yelvens in #3892
- proc: allow access to thread registers after a function call by @aarzilli in #3908
- TeamCity: remove riscv64 from configuration by @aarzilli in #3912
- proc: better error message for breakpoints on stripped binaries by @aarzilli in #3914
- proc: some refactorings for supporting struct literals by @aarzilli in #3909
- CirrusCI: update FreeBSD version by @aarzilli in #3917
- *: remove uses of reflect.MethodByName from all of Delve by @aarzilli in #3916
- logflags: replace logrus with log/slog by @aarzilli in #3918
- proc/gdbserial: use rr version to determine style of qRRCmd by @aarzilli in #3921
- pkg/proc: add support for interface watchpoints by @derekparker in #3922
- pkg/proc: support watchpoint on nil interface by @derekparker in #3924
- DWARFv5 fixes by @aarzilli in #3893
- service/test: handle wider registers in test by @derekparker in #3929
- telemetry: add stack counter for internal errors by @aarzilli in #3930
- proc: do not pin function call returns for toplevel call by @aarzilli in #3925
- proc: expose breakpoint hitcounts in expressions by @aarzilli in #3874
- *: v1.24.1 by @derekparker in #3931
New Contributors
- @alingse made their first contribution in #3886
- @3u13r made their first contribution in #3894
- @zhanluxianshen made their first contribution in #3897
- @shaunduncan made their first contribution in #3902
Full Changelog: https://github.com/go-delve/delve/blob/master/CHANGELOG.md#1241-2025-03-05
v1.24.0
Curated CHANGELOG: https://github.com/go-delve/delve/blob/master/CHANGELOG.md#1240-2024-12-18
What's Changed
- proc: step into coroutine by @aarzilli in #3791
- Documentation: Add dape to list of plugins by @jgarte in #3817
- cmds/commands: Update 'client-addr' to support Unix domain sockets by @n1lesh in #3819
- pkg/proc: simplify tests by using errors.As by @alexandear in #3818
- *: replace uses of uniq with slices.Compact by @aarzilli in #3821
- tests: disable TestGeneratedDoc on 1.24 (tip) by @aarzilli in #3820
- terminal,service: add raw examinemem dump by @aarzilli in #3721
- proc: adds pointer pinning to call injection by @aarzilli in #3787
- update golang.org/x/arch to v0.11.0 by @yelvens in #3826
- delve: add linux-riscv64 support by @lrzlin in #3785
- *: mark riscv64 port as experimental by @aarzilli in #3835
- pkg/proc/core: Clean up some repetitive code by @aarzilli in #3834
- goversion: parse version for development builds by @aarzilli in #3837
- Documentation: fix autogenerated markdown documentation by @aarzilli in #3836
- proc: use CPUID to determine ZMM_Hi256 region offset by @jiegec in #3831
- _scripts: update staticcheck version by @aarzilli in #3839
- TeamCity: move riscv64 backend testing to tip by @aarzilli in #3842
- all: import go telemetry and enable crash reporting by @hyangah in #3841
- service/rpc2: correct ExamineMemory length error message by @prattmic in #3846
- service,terminal,cmd/dlv: automatically guessing substitute-path config by @aarzilli in #3781
- proc: fix rangeFuncStackTrace with inlined functions by @aarzilli in #3849
- proc: run gofmt by @alexandear in #3851
- proc: fix typos in errors, tests, and comments by @alexandear in #3852
- Documentation: using
go installis preferable by @alexandear in #3853 - proc: do not ignore error return of funcCallEvalFuncExpr by @aarzilli in #3850
- tests: calling os.Exit in TestMain is not required by @alexandear in #3856
- all: remove redundant err declarations by @alexandear in #3855
- go.mod: sync golang.org/x/telemetry@58a1122356f5 by @hyangah in #3857
- pkg/proc/native,pkg/proc/amd64util: xsave decoding cleanup by @aarzilli in #3840
- proc/core/minidump: remove newlines from minidump logs by @aarzilli in #3869
- proc: fix issue on Windows when launching process while detached by @aarzilli in #3867
- feat: print a message when the debugee process exits by @jakejx in #3870
- proc: allow accessing captured variable as if they were struct fields by @aarzilli in #3866
- pkg/proc,service/debugger: do not disable unsatisfiable breakpoints by @aarzilli in #3868
- terminal/starbind: allow modification of structs returned by API by @aarzilli in #3872
- pkg/proc: support swiss table map implementation by @aarzilli in #3838
- tests: removing of dlvbin is not needed by @alexandear in #3875
- service/rpc1: delete APIv1 by @aarzilli in #3881
- proc: fix loading goroutine labels on Go 1.24 by @aarzilli in #3879
- goversion,proc_test: add go1.24 compatiblity, disable broken test by @aarzilli in #3882
- *: v1.24.0 by @derekparker in #3883
New Contributors
- @jgarte made their first contribution in #3817
- @n1lesh made their first contribution in #3819
- @yelvens made their first contribution in #3826
- @lrzlin made their first contribution in #3785
- @jiegec made their first contribution in #3831
- @jakejx made their first contribution in #3870
Full Changelog: v1.23.1...v1.24.0