debug: toggling breakpoints hangs while focus is on an ephemeral goroutine · Issue #1648 · golang/vscode-go (original) (raw)

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?

    golang.org/x/tools/gopls v0.7.0
    golang.org/x/tools/gopls@v0.7.0 h1:JQBHW81Gsyim6iDjUwGoPeSpXrSqwen3isPJLfDfaYU=
    github.com/BurntSushi/toml@v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
    github.com/google/go-cmp@v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
    github.com/sergi/go-diff@v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
    golang.org/x/mod@v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo=
    golang.org/x/sync@v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
    golang.org/x/sys@v0.0.0-20210510120138-977fb7262007 h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE=
    golang.org/x/tools@v0.1.3-0.20210608163600-9ed039809d4c h1:Pv9gNyJFYVdpUAVZYJ1BDSU4eGgXQ+0f3DIGAdolO5s=
    golang.org/x/xerrors@v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
    honnef.co/go/tools@v0.2.0 h1:ws8AfbgTX3oIczLPNPCu5166oBg9ST2vNs0rcht+mDE=
    mvdan.cc/gofumpt@v0.1.1 h1:bi/1aS/5W00E2ny5q65w9SnKpWEF/UIOqDYBILpo9rA=
    mvdan.cc/xurls/v2@v2.2.0 h1:NSZPykBXJFCetGZykLAxaL6SIpvbVy/UFEniIfHAa8A=
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"

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.