Skip to content

debug: toggling breakpoints hangs while focus is on an ephemeral goroutine  #1648

Closed
@lucky-wolf

Description

@lucky-wolf

For asking questions, see:

Before filing an issue, please review our troubleshooting guides

Please answer these questions before submitting your issue. Thanks!

What version of Go, VS Code & VS Code Go extension are you using?

  • Run go version to get version of Go from the VS Code integrated terminal.
    • go version go1.16.5 linux/amd64
  • Run gopls -v version to get version of Gopls from the VS Code integrated terminal.
    • Build info
    golang.org/x/tools/gopls v0.7.0
    golang.org/x/tools/[email protected] h1:JQBHW81Gsyim6iDjUwGoPeSpXrSqwen3isPJLfDfaYU=
    github.com/BurntSushi/[email protected] h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
    github.com/google/[email protected] h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
    github.com/sergi/[email protected] h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
    golang.org/x/[email protected] h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo=
    golang.org/x/[email protected] h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
    golang.org/x/[email protected] h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE=
    golang.org/x/[email protected] h1:Pv9gNyJFYVdpUAVZYJ1BDSU4eGgXQ+0f3DIGAdolO5s=
    golang.org/x/[email protected] h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
    honnef.co/go/[email protected] h1:ws8AfbgTX3oIczLPNPCu5166oBg9ST2vNs0rcht+mDE=
    mvdan.cc/[email protected] h1:bi/1aS/5W00E2ny5q65w9SnKpWEF/UIOqDYBILpo9rA=
    mvdan.cc/xurls/[email protected] h1:NSZPykBXJFCetGZykLAxaL6SIpvbVy/UFEniIfHAa8A=
  • Run code -v or code-insiders -v to get version of VS Code or VS Code Insiders.
    • 1.58.2
      c3f126316369cd610563c75b1b1725e0679adfb3
      x64
  • Check your installed extensions to get the version of the VS Code Go extension
    • N/A
  • Run Ctrl+Shift+P (Cmd+Shift+P on Mac OS) > Go: Locate Configured Go Tools command.
    • Checking configured tools....
GOBIN: undefined
toolsGopath: 
gopath: /home/swolf/go
GOROOT: /home/swolf/go-sdk
PATH: /home/swolf/go-sdk/bin:/home/swolf/go/bin:/home/swolf/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/swolf/protobuf/bin

   gopkgs: /home/swolf/go/bin/gopkgs installed
   go-outline: /home/swolf/go/bin/go-outline installed
   gotests: /home/swolf/go/bin/gotests installed
   gomodifytags: /home/swolf/go/bin/gomodifytags installed
   impl: /home/swolf/go/bin/impl installed
   goplay: /home/swolf/go/bin/goplay installed
   dlv: /home/swolf/go/bin/dlv installed
   dlv-dap: /home/swolf/go/bin/dlv-dap installed
   staticcheck: /home/swolf/go/bin/staticcheck installed
   gopls: /home/swolf/go/bin/gopls installed

go env
Workspace Folder (pb): /home/swolf/Projects/pb
	GO111MODULE=""
	GOARCH="amd64"
	GOBIN=""
	GOCACHE="/home/swolf/.cache/go-build"
	GOENV="/home/swolf/.config/go/env"
	GOEXE=""
	GOFLAGS=""
	GOHOSTARCH="amd64"
	GOHOSTOS="linux"
	GOINSECURE=""
	GOMODCACHE="/home/swolf/go/pkg/mod"
	GONOPROXY="github.com/luckypointlabs,github.com/Arkadia-tech"
	GONOSUMDB="github.com/luckypointlabs,github.com/Arkadia-tech"
	GOOS="linux"
	GOPATH="/home/swolf/go"
	GOPRIVATE="github.com/luckypointlabs,github.com/Arkadia-tech"
	GOPROXY="https://proxy.golang.org,direct"
	GOROOT="/home/swolf/go-sdk"
	GOSUMDB="sum.golang.org"
	GOTMPDIR=""
	GOTOOLDIR="/home/swolf/go-sdk/pkg/tool/linux_amd64"
	GOVCS=""
	GOVERSION="go1.16.5"
	GCCGO="gccgo"
	AR="ar"
	CC="gcc"
	CXX="g++"
	CGO_ENABLED="1"
	GOMOD="/home/swolf/Projects/pb/go.mod"
	CGO_CFLAGS="-g -O2"
	CGO_CPPFLAGS=""
	CGO_CXXFLAGS="-g -O2"
	CGO_FFLAGS="-g -O2"
	CGO_LDFLAGS="-g -O2"
	PKG_CONFIG="pkg-config"
	GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build2546632551=/tmp/go-build -gno-record-gcc-switches"

Share the Go related settings you have added/edited

Nothing very interesting...

Describe the bug

When I set a breakpoint in a running session using dlv-dap, the process hangs (assuming it wasn't paused when I set the BP).

When I clear a BP in a paused session using dlv-dap, I thrown into src/runtime/sigqueue.go:168

Eitherway - unable to change BPs in an active debug session. I can change them if I exit the process first, and start a new session.

Steps to reproduce the behavior:

launch a go server
to set a BP on something you know will trigger in a moment / after an action
do that action to trigger that code
nothing will ever happen (the process is frozen)

Screenshots or recordings

If applicable, add screenshots or recordings to help explain your problem.

Metadata

Metadata

Assignees

No one assigned

    Labels

    DebugIssues related to the debugging functionality of the extension.FrozenDueToAgeupstream-vscodeIssues that are by problems in VS Code itself.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions