go-delve / go-delve/delve

proc: telemetry report: index error in fncallPeek while resuming execution of a call injection

Open
#4,085 7 comments 0 reactions 0 assignees View on GitHub
delve/telemetry-wins
Dominant language
Go
Stars
24.9k
Forks
2.2k
Avg merge
2d 22h
Merged PRs (30d)
17

Description

```
#!stacks
"goPanicIndex" && "proc.(*evalStack).fncallPeek"
```
Issue created by [stacks](https://pkg.go.dev/golang.org/x/telemetry/cmd/stacks).

This stack `5cV75w` was [reported by telemetry](https://telemetry.go.dev/data/2025-08-03):

- `delve/bug`
- [`github.com/go-delve/delve/pkg/proc.(*evalStack).executeOp.func1:+3`](https://github.com/go-delve/delve/blob/v1.25.0/pkg/proc/eval.go#L1054)
- [`runtime.gopanic:+50`](https://cs.opensource.google/go/go/+/go1.24.5:src/runtime/panic.go;l=792)
- [`runtime.goPanicIndex:+2`](https://cs.opensource.google/go/go/+/go1.24.5:src/runtime/panic.go;l=115)
- `github.com/go-delve/delve/pkg/proc.(*evalStack).fncallPeek:=873`
- [`github.com/go-delve/delve/pkg/proc.(*EvalScope).evalCallInjectionSetTarget:+1`](https://github.com/go-delve/delve/blob/v1.25.0/pkg/proc/fncall.go#L983)
- [`github.com/go-delve/delve/pkg/proc.(*evalStack).executeOp:+151`](https://github.com/go-delve/delve/blob/v1.25.0/pkg/proc/eval.go#L1200)
- [`github.com/go-delve/delve/pkg/proc.(*evalStack).run:+4`](https://github.com/go-delve/delve/blob/v1.25.0/pkg/proc/eval.go#L973)
- [`github.com/go-delve/delve/pkg/proc.(*evalStack).resume:+56`](https://github.com/go-delve/delve/blob/v1.25.0/pkg/proc/eval.go#L966)
- [`github.com/go-delve/delve/pkg/proc.callInjectionProtocol:+36`](https://github.com/go-delve/delve/blob/v1.25.0/pkg/proc/fncall.go#L1180)
- [`github.com/go-delve/delve/pkg/proc.(*TargetGroup).Continue:+112`](https://github.com/go-delve/delve/blob/v1.25.0/pkg/proc/target_exec.go#L168)
- [`github.com/go-delve/delve/service/debugger.(*Debugger).Command:+38`](https://github.com/go-delve/delve/blob/v1.25.0/service/debugger/debugger.go#L1100)
- [`github.com/go-delve/delve/service/dap.(*Session).resumeOnce:+20`](https://github.com/go-delve/delve/blob/v1.25.0/service/dap/server.go#L3703)
- [`github.com/go-delve/delve/service/dap.(*Session).resumeOnceAndCheckStop:+1`](https://github.com/go-delve/delve/blob/v1.25.0/service/dap/server.go#L3851)
- [`github.com/go-delve/delve/service/dap.init.func1:+1`](https://github.com/go-delve/delve/blob/v1.25.0/service/dap/server.go#L3847)
- [`github.com/go-delve/delve/service/dap.(*Session).runUntilStop:+10`](https://github.com/go-delve/delve/blob/v1.25.0/service/dap/server.go#L3839)
- [`github.com/go-delve/delve/service/dap.(*Session).runUntilStopAndNotify:+1`](https://github.com/go-delve/delve/blob/v1.25.0/service/dap/server.go#L3714)
```
github.com/go-delve/delve/cmd/dlv@v1.25.0 go1.24.5 linux/amd64 (3)
```
Dups: QUnKEw ScKaUA yjGumQ fqHTcQ xVd7DA 4VuDqA LVx4pQ p0vuyw

Contributor guide

Open the contributing guide

Research direction

Start with pkg/proc/eval.go at evalStack.fncallPeek and trace the resume path through evalStack.executeOp and evalStack.resume. Then inspect pkg/proc/fncall.go around EvalScope.evalCallInjectionSetTarget and callInjectionProtocol, using the reported telemetry stack as the failure scenario. Done means resuming a call injection no longer produces the index panic, with regression coverage for the case.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.