Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

debug: setting breakpoints while stepping causes step to be skipped #787

Closed
suzmue opened this issue Oct 14, 2020 · 15 comments
Closed

debug: setting breakpoints while stepping causes step to be skipped #787

suzmue opened this issue Oct 14, 2020 · 15 comments
Labels
debug/legacy legacy debug adapter related issues - new issues won't be fixed Debug Issues related to the debugging functionality of the extension. FrozenDueToAge

Comments

@suzmue
Copy link
Contributor

suzmue commented Oct 14, 2020

Please answer these questions before submitting your issue. Thanks!

  • Run code -v or code-insiders -v to get version of VS Code or VS Code Insiders
    • 1.50.0
  • Check your installed extensions to get the version of the VS Code Go extension
    • developer build from master

Describe the bug

If during a next request, you try to modify the breakpoint (by setting, deleting a breakpoint etc) the step function does not complete.

Steps to reproduce the behavior:

main.go

package main

import (
	"fmt"
	"time"
)

func main() {
	time.Sleep(10000000000) // set a breakpoint here, then click next
	fmt.Println("bye")
}

launch.json:

{
    "version": "0.2.0",
    "configurations": [
      {
        "name": "Launch Package",
        "type": "go",
        "request": "launch",
        "program": "${workspaceFolder}",
        "trace": "verbose",
      }, 
    ]
  }
  1. Run the program to a breakpoint on time.Sleep.
  2. Click step over
  3. Delete the breakpoint while the step is running
  4. The program terminates and doesnt stop on "bye"
2020-10-14, 16:33:27.840 UTC
[16:33:27.840 UTC] From client: initialize({"clientID":"vscode","clientName":"Visual Studio Code","adapterID":"go","pathFormat":"path","linesStartAt1":true,"columnsStartAt1":true,"supportsVariableType":true,"supportsVariablePaging":true,"supportsRunInTerminalRequest":true,"locale":"en-us","supportsProgressReporting":true,"supportsInvalidatedEvent":true})
[16:33:27.840 UTC] InitializeRequest
[16:33:27.840 UTC] To client: {"seq":0,"type":"response","request_seq":1,"command":"initialize","success":true,"body":{"supportsConfigurationDoneRequest":true,"supportsSetVariable":true}}
[16:33:27.840 UTC] InitializeResponse
[16:33:27.840 UTC] From client: launch({"name":"Launch Package","type":"go","request":"launch","program":"/Users/suzmue/simpleproj","trace":"verbose","debugServer":4711,"packagePathToGoModPathMap":{"/Users/suzmue/simpleproj":"/Users/suzmue/simpleproj"},"apiVersion":2,"dlvLoadConfig":{"followPointers":true,"maxVariableRecurse":1,"maxStringLen":64,"maxArrayValues":64,"maxStructFields":-1},"showGlobalVariables":false,"dlvToolPath":"/Users/suzmue/go/bin/dlv","env":{"ELECTRON_RUN_AS_NODE":"1","USER":"suzmue","PATH":"/usr/local/git/current/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/go/bin:/Users/suzmue/go/bin","LOGNAME":"suzmue","SSH_AUTH_SOCK":"/private/tmp/com.apple.launchd.iaORmlkr6h/Listeners","HOME":"/Users/suzmue","SHELL":"/bin/bash","__CF_USER_TEXT_ENCODING":"0x74A6A:0x0:0x0","TMPDIR":"/var/folders/2x/hlwbwjzd1vd4brlfs80676fw00fkl_/T/","XPC_SERVICE_NAME":"com.microsoft.VSCode.5232","XPC_FLAGS":"0x0","ORIGINAL_XDG_CURRENT_DESKTOP":"undefined","VSCODE_NLS_CONFIG":"{\"locale\":\"en-us\",\"availableLanguages\":{},\"_languagePackSupport\":true}","VSCODE_LOGS":"/Users/suzmue/Library/Application Support/Code/logs/20201012T151609","VSCODE_IPC_HOOK":"/Users/suzmue/Library/Application Support/Code/1.50.0-main.sock","VSCODE_PID":"3178","SK_SIGNING_PLUGIN":"gnubbyagent","PWD":"/","SHLVL":"1","GITHUB_TOKEN":"_","GOPATH":"/Users/suzmue/go","_":"/Applications/Visual Studio Code.app/Contents/MacOS/Electron","AMD_ENTRYPOINT":"vs/workbench/services/extensions/node/extensionHostProcess","PIPE_LOGGING":"true","VERBOSE_LOGGING":"true","VSCODE_IPC_HOOK_EXTHOST":"/var/folders/2x/hlwbwjzd1vd4brlfs80676fw00fkl_/T/vscode-ipc-4c0c71e5-d9b0-42e3-a02b-a89e32b72ab3.sock","VSCODE_HANDLES_UNCAUGHT_ERRORS":"true","VSCODE_LOG_STACK":"true","APPLICATION_INSIGHTS_NO_DIAGNOSTIC_CHANNEL":"true","GOPROXY":"https://proxy.golang.org,direct","GOMODCACHE":"/Users/suzmue/go/pkg/mod"},"__sessionId":"d7604b91-4dc5-4474-a684-49f4b6797a6e"})
[16:33:27.841 UTC] LaunchRequest
[16:33:27.850 UTC] Using GOPATH: /Users/suzmue/go
[16:33:27.850 UTC] Using GOROOT: /usr/local/go
[16:33:27.851 UTC] Using PATH: /usr/local/git/current/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/go/bin:/Users/suzmue/go/bin
[16:33:27.851 UTC] Current working directory: /Users/suzmue/simpleproj
[16:33:27.852 UTC] Running: /Users/suzmue/go/bin/dlv debug --headless=true --listen=127.0.0.1:15304 --api-version=2
[16:33:28.260 UTC] To client: {"seq":0,"type":"event","event":"output","body":{"category":"stdout","output":"API server listening at: 127.0.0.1:15304\n"}}
[16:33:28.465 UTC] To client: {"seq":0,"type":"event","event":"initialized"}
[16:33:28.466 UTC] InitializeEvent
[16:33:28.466 UTC] To client: {"seq":0,"type":"response","request_seq":2,"command":"launch","success":true}
[16:33:28.468 UTC] From client: setBreakpoints({"source":{"name":"main.go","path":"/Users/suzmue/simpleproj/main.go","sourceReference":0},"lines":[9],"breakpoints":[{"line":9}],"sourceModified":false})
[16:33:28.468 UTC] SetBreakPointsRequest
[16:33:28.470 UTC] Debuggee is not running. Setting breakpoints without halting.
[16:33:28.471 UTC] All cleared
[16:33:28.471 UTC] Creating on: /Users/suzmue/simpleproj/main.go:9
[16:33:28.473 UTC] All set:[{"Breakpoint":{"id":1,"name":"","addr":17633793,"addrs":[17633793],"file":"/Users/suzmue/simpleproj/main.go","line":9,"functionName":"main.main","Cond":"","continue":false,"traceReturn":false,"goroutine":false,"stacktrace":0,"LoadArgs":{"FollowPointers":true,"MaxVariableRecurse":1,"MaxStringLen":64,"MaxArrayValues":64,"MaxStructFields":-1},"LoadLocals":{"FollowPointers":true,"MaxVariableRecurse":1,"MaxStringLen":64,"MaxArrayValues":64,"MaxStructFields":-1},"hitCount":{},"totalHitCount":0}}]
[16:33:28.473 UTC] To client: {"seq":0,"type":"response","request_seq":3,"command":"setBreakpoints","success":true,"body":{"breakpoints":[{"verified":true,"line":9}]}}
[16:33:28.473 UTC] SetBreakPointsResponse
[16:33:28.485 UTC] From client: configurationDone(undefined)
[16:33:28.485 UTC] ConfigurationDoneRequest
[16:33:28.486 UTC] Changing DebugState from Halted to Running
[16:33:28.487 UTC] To client: {"seq":0,"type":"response","request_seq":4,"command":"configurationDone","success":true}
[16:33:28.487 UTC] ConfigurationDoneResponse {"seq":36,"type":"response","request_seq":4,"command":"configurationDone","success":true}
[16:33:28.490 UTC] From client: threads(undefined)
[16:33:28.491 UTC] To client: {"seq":0,"type":"response","request_seq":5,"command":"threads","success":true,"body":{"threads":[{"id":1,"name":"Dummy"}]}}
[16:33:28.504 UTC] continue state {"Running":false,"Recording":false,"currentThread":{"id":607959,"pc":17633793,"file":"/Users/suzmue/simpleproj/main.go","line":9,"function":{"name":"main.main","value":17633760,"type":0,"goType":0,"optimized":false},"goroutineID":1,"breakPoint":{"id":1,"name":"","addr":17633793,"addrs":[17633793],"file":"/Users/suzmue/simpleproj/main.go","line":9,"functionName":"main.main","Cond":"","continue":false,"traceReturn":false,"goroutine":false,"stacktrace":0,"LoadArgs":{"FollowPointers":true,"MaxVariableRecurse":1,"MaxStringLen":64,"MaxArrayValues":64,"MaxStructFields":-1},"LoadLocals":{"FollowPointers":true,"MaxVariableRecurse":1,"MaxStringLen":64,"MaxArrayValues":64,"MaxStructFields":-1},"hitCount":{"1":1},"totalHitCount":1},"breakPointInfo":{},"ReturnValues":null},"currentGoroutine":{"id":1,"currentLoc":{"pc":17633793,"file":"/Users/suzmue/simpleproj/main.go","line":9,"function":{"name":"main.main","value":17633760,"type":0,"goType":0,"optimized":false}},"userCurrentLoc":{"pc":17633793,"file":"/Users/suzmue/simpleproj/main.go","line":9,"function":{"name":"main.main","value":17633760,"type":0,"goType":0,"optimized":false}},"goStatementLoc":{"pc":17216790,"file":"/usr/local/go/src/runtime/asm_amd64.s","line":220,"function":{"name":"runtime.rt0_go","value":17216480,"type":0,"goType":0,"optimized":true}},"startLoc":{"pc":17017088,"file":"/usr/local/go/src/runtime/proc.go","line":114,"function":{"name":"runtime.main","value":17017088,"type":0,"goType":0,"optimized":true}},"threadID":607959,"unreadable":""},"Threads":[{"id":608014,"pc":140735047706754,"file":"","line":0,"goroutineID":0,"ReturnValues":null},{"id":607959,"pc":17633793,"file":"/Users/suzmue/simpleproj/main.go","line":9,"function":{"name":"main.main","value":17633760,"type":0,"goType":0,"optimized":false},"goroutineID":1,"breakPoint":{"id":1,"name":"","addr":17633793,"addrs":[17633793],"file":"/Users/suzmue/simpleproj/main.go","line":9,"functionName":"main.main","Cond":"","continue":false,"traceReturn":false,"goroutine":false,"stacktrace":0,"LoadArgs":{"FollowPointers":true,"MaxVariableRecurse":1,"MaxStringLen":64,"MaxArrayValues":64,"MaxStructFields":-1},"LoadLocals":{"FollowPointers":true,"MaxVariableRecurse":1,"MaxStringLen":64,"MaxArrayValues":64,"MaxStructFields":-1},"hitCount":{"1":1},"totalHitCount":1},"breakPointInfo":{},"ReturnValues":null},{"id":608011,"pc":140735047706454,"file":"","line":0,"goroutineID":0,"ReturnValues":null},{"id":608012,"pc":140735047706754,"file":"","line":0,"goroutineID":0,"ReturnValues":null},{"id":608013,"pc":140735047706754,"file":"","line":0,"goroutineID":0,"ReturnValues":null}],"NextInProgress":false,"exited":false,"exitStatus":0,"When":""}
[16:33:28.504 UTC] handleReenterDebug(breakpoint).
[16:33:28.506 UTC] To client: {"seq":0,"type":"event","event":"stopped","body":{"reason":"breakpoint","threadId":1,"allThreadsStopped":true}}
[16:33:28.507 UTC] StoppedEvent("breakpoint")
[16:33:28.508 UTC] From client: threads(undefined)
[16:33:28.509 UTC] ThreadsRequest
[16:33:28.521 UTC] goroutines [{"id":1,"currentLoc":{"pc":17633793,"file":"/Users/suzmue/simpleproj/main.go","line":9,"function":{"name":"main.main","value":17633760,"type":0,"goType":0,"optimized":false}},"userCurrentLoc":{"pc":17633793,"file":"/Users/suzmue/simpleproj/main.go","line":9,"function":{"name":"main.main","value":17633760,"type":0,"goType":0,"optimized":false}},"goStatementLoc":{"pc":17216790,"file":"/usr/local/go/src/runtime/asm_amd64.s","line":220,"function":{"name":"runtime.rt0_go","value":17216480,"type":0,"goType":0,"optimized":true}},"startLoc":{"pc":17017088,"file":"/usr/local/go/src/runtime/proc.go","line":114,"function":{"name":"runtime.main","value":17017088,"type":0,"goType":0,"optimized":true}},"threadID":607959,"unreadable":""},{"id":2,"currentLoc":{"pc":17018613,"file":"/usr/local/go/src/runtime/proc.go","line":307,"function":{"name":"runtime.gopark","value":17018400,"type":0,"goType":0,"optimized":true}},"userCurrentLoc":{"pc":17018613,"file":"/usr/local/go/src/runtime/proc.go","line":307,"function":{"name":"runtime.gopark","value":17018400,"type":0,"goType":0,"optimized":true}},"goStatementLoc":{"pc":17017973,"file":"/usr/local/go/src/runtime/proc.go","line":243,"function":{"name":"runtime.init.6","value":17017920,"type":0,"goType":0,"optimized":true}},"startLoc":{"pc":17018016,"file":"/usr/local/go/src/runtime/proc.go","line":246,"function":{"name":"runtime.forcegchelper","value":17018016,"type":0,"goType":0,"optimized":true}},"threadID":0,"unreadable":""},{"id":3,"currentLoc":{"pc":17018613,"file":"/usr/local/go/src/runtime/proc.go","line":307,"function":{"name":"runtime.gopark","value":17018400,"type":0,"goType":0,"optimized":true}},"userCurrentLoc":{"pc":17018613,"file":"/usr/local/go/src/runtime/proc.go","line":307,"function":{"name":"runtime.gopark","value":17018400,"type":0,"goType":0,"optimized":true}},"goStatementLoc":{"pc":16889596,"file":"/usr/local/go/src/runtime/mgc.go","line":217,"function":{"name":"runtime.gcenable","value":16889504,"type":0,"goType":0,"optimized":true}},"startLoc":{"pc":16930176,"file":"/usr/local/go/src/runtime/mgcsweep.go","line":156,"function":{"name":"runtime.bgsweep","value":16930176,"type":0,"goType":0,"optimized":true}},"threadID":0,"unreadable":""},{"id":4,"currentLoc":{"pc":17018613,"file":"/usr/local/go/src/runtime/proc.go","line":307,"function":{"name":"runtime.gopark","value":17018400,"type":0,"goType":0,"optimized":true}},"userCurrentLoc":{"pc":17018613,"file":"/usr/local/go/src/runtime/proc.go","line":307,"function":{"name":"runtime.gopark","value":17018400,"type":0,"goType":0,"optimized":true}},"goStatementLoc":{"pc":16889630,"file":"/usr/local/go/src/runtime/mgc.go","line":218,"function":{"name":"runtime.gcenable","value":16889504,"type":0,"goType":0,"optimized":true}},"startLoc":{"pc":16921600,"file":"/usr/local/go/src/runtime/mgcscavenge.go","line":252,"function":{"name":"runtime.bgscavenge","value":16921600,"type":0,"goType":0,"optimized":true}},"threadID":0,"unreadable":""},{"id":5,"currentLoc":{"pc":17018613,"file":"/usr/local/go/src/runtime/proc.go","line":307,"function":{"name":"runtime.gopark","value":17018400,"type":0,"goType":0,"optimized":true}},"userCurrentLoc":{"pc":17018613,"file":"/usr/local/go/src/runtime/proc.go","line":307,"function":{"name":"runtime.gopark","value":17018400,"type":0,"goType":0,"optimized":true}},"goStatementLoc":{"pc":16885157,"file":"/usr/local/go/src/runtime/mfinal.go","line":156,"function":{"name":"runtime.createfing","value":16885056,"type":0,"goType":0,"optimized":true}},"startLoc":{"pc":16885184,"file":"/usr/local/go/src/runtime/mfinal.go","line":161,"function":{"name":"runtime.runfinq","value":16885184,"type":0,"goType":0,"optimized":true}},"threadID":0,"unreadable":""}]
[16:33:28.522 UTC] To client: {"seq":0,"type":"response","request_seq":6,"command":"threads","success":true,"body":{"threads":[{"id":1,"name":"main.main"},{"id":2,"name":"runtime.gopark"},{"id":3,"name":"runtime.gopark"},{"id":4,"name":"runtime.gopark"},{"id":5,"name":"runtime.gopark"}]}}
[16:33:28.522 UTC] ThreadsResponse [{"id":1,"name":"main.main"},{"id":2,"name":"runtime.gopark"},{"id":3,"name":"runtime.gopark"},{"id":4,"name":"runtime.gopark"},{"id":5,"name":"runtime.gopark"}]
[16:33:28.525 UTC] From client: stackTrace({"threadId":1,"startFrame":0,"levels":20})
[16:33:28.525 UTC] StackTraceRequest
[16:33:28.534 UTC] locations [{"pc":17633793,"file":"/Users/suzmue/simpleproj/main.go","line":9,"function":{"name":"main.main","value":17633760,"type":0,"goType":0,"optimized":false},"Locals":[],"Arguments":[],"FrameOffset":-120,"FramePointerOffset":-136,"Defers":[],"Err":""},{"pc":17017551,"file":"/usr/local/go/src/runtime/proc.go","line":204,"function":{"name":"runtime.main","value":17017088,"type":0,"goType":0,"optimized":true},"Locals":[{"name":"g","addr":824634195896,"onlyAddr":false,"type":"*runtime.g","realType":"*runtime.g","flags":0,"kind":22,"value":"","len":1,"cap":0,"children":[{"name":"","addr":824633721216,"onlyAddr":false,"type":"runtime.g","realType":"runtime.g","flags":0,"kind":25,"value":"","len":46,"cap":0,"children":[{"name":"stack","addr":824633721216,"onlyAddr":false,"type":"runtime.stack","realType":"runtime.stack","flags":0,"kind":25,"value":"","len":2,"cap":0,"children":[{"name":"lo","addr":824633721216,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"824634187776","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"hi","addr":824633721224,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"824634195968","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"stackguard0","addr":824633721232,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"824634188704","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"stackguard1","addr":824633721240,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"18446744073709551615","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"_panic","addr":824633721248,"onlyAddr":false,"type":"*runtime._panic","realType":"*runtime._panic","flags":0,"kind":22,"value":"","len":1,"cap":0,"children":[{"name":"","addr":0,"onlyAddr":false,"type":"runtime._panic","realType":"runtime._panic","flags":0,"kind":25,"value":"","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"_defer","addr":824633721256,"onlyAddr":false,"type":"*runtime._defer","realType":"*runtime._defer","flags":0,"kind":22,"value":"","len":1,"cap":0,"children":[{"name":"","addr":0,"onlyAddr":false,"type":"runtime._defer","realType":"runtime._defer","flags":0,"kind":25,"value":"","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"m","addr":824633721264,"onlyAddr":false,"type":"*runtime.m","realType":"*runtime.m","flags":0,"kind":22,"value":"","len":1,"cap":0,"children":[{"name":"","addr":18356384,"onlyAddr":false,"type":"runtime.m","realType":"runtime.m","flags":0,"kind":25,"value":"","len":62,"cap":0,"children":[{"name":"g0","addr":18356384,"onlyAddr":false,"type":"*runtime.g","realType":"*runtime.g","flags":0,"kind":22,"value":"","len":1,"cap":0,"children":[{"name":"","addr":18355008,"onlyAddr":false,"type":"runtime.g","realType":"runtime.g","flags":0,"kind":25,"value":"","len":46,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"morebuf","addr":18356392,"onlyAddr":false,"type":"runtime.gobuf","realType":"runtime.gobuf","flags":0,"kind":25,"value":"","len":7,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"divmod","addr":18356448,"onlyAddr":false,"type":"uint32","realType":"uint32","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"procid","addr":18356456,"onlyAddr":false,"type":"uint64","realType":"uint64","flags":0,"kind":7,"value":"239865280","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"gsignal","addr":18356464,"onlyAddr":false,"type":"*runtime.g","realType":"*runtime.g","flags":0,"kind":22,"value":"","len":1,"cap":0,"children":[{"name":"","addr":824633720832,"onlyAddr":false,"type":"runtime.g","realType":"runtime.g","flags":0,"kind":25,"value":"","len":46,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"goSigStack","addr":18356472,"onlyAddr":false,"type":"runtime.gsignalStack","realType":"runtime.gsignalStack","flags":0,"kind":25,"value":"","len":4,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"sigmask","addr":18356512,"onlyAddr":false,"type":"runtime.sigset","realType":"runtime.sigset","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"tls","addr":18356520,"onlyAddr":false,"type":"[6]uintptr","realType":"[6]uintptr","flags":0,"kind":17,"value":"","len":6,"cap":-1,"children":[{"name":"","addr":18356520,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356528,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356536,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356544,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356552,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356560,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":18356520,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"mstartfn","addr":18356568,"onlyAddr":false,"type":"func()","realType":"func()","flags":0,"kind":19,"value":"","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"curg","addr":18356576,"onlyAddr":false,"type":"*runtime.g","realType":"*runtime.g","flags":0,"kind":22,"value":"","len":1,"cap":0,"children":[{"name":"","addr":824633721216,"onlyAddr":false,"type":"runtime.g","realType":"runtime.g","flags":0,"kind":25,"value":"","len":46,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"caughtsig","addr":18356584,"onlyAddr":false,"type":"runtime.guintptr","realType":"runtime.guintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"p","addr":18356592,"onlyAddr":false,"type":"runtime.puintptr","realType":"runtime.puintptr","flags":0,"kind":7,"value":"824633892864","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"nextp","addr":18356600,"onlyAddr":false,"type":"runtime.puintptr","realType":"runtime.puintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"oldp","addr":18356608,"onlyAddr":false,"type":"runtime.puintptr","realType":"runtime.puintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"id","addr":18356616,"onlyAddr":false,"type":"int64","realType":"int64","flags":0,"kind":2,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"mallocing","addr":18356624,"onlyAddr":false,"type":"int32","realType":"int32","flags":0,"kind":2,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"throwing","addr":18356628,"onlyAddr":false,"type":"int32","realType":"int32","flags":0,"kind":2,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"preemptoff","addr":18356632,"onlyAddr":false,"type":"string","realType":"string","flags":0,"kind":24,"value":"","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"locks","addr":18356648,"onlyAddr":false,"type":"int32","realType":"int32","flags":0,"kind":2,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"dying","addr":18356652,"onlyAddr":false,"type":"int32","realType":"int32","flags":0,"kind":2,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"profilehz","addr":18356656,"onlyAddr":false,"type":"int32","realType":"int32","flags":0,"kind":2,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"spinning","addr":18356660,"onlyAddr":false,"type":"bool","realType":"bool","flags":0,"kind":1,"value":"false","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"blocked","addr":18356661,"onlyAddr":false,"type":"bool","realType":"bool","flags":0,"kind":1,"value":"false","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"newSigstack","addr":18356662,"onlyAddr":false,"type":"bool","realType":"bool","flags":0,"kind":1,"value":"true","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"printlock","addr":18356663,"onlyAddr":false,"type":"int8","realType":"int8","flags":0,"kind":2,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"incgo","addr":18356664,"onlyAddr":false,"type":"bool","realType":"bool","flags":0,"kind":1,"value":"false","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"freeWait","addr":18356668,"onlyAddr":false,"type":"uint32","realType":"uint32","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"fastrand","addr":18356672,"onlyAddr":false,"type":"[2]uint32","realType":"[2]uint32","flags":0,"kind":17,"value":"","len":2,"cap":-1,"children":[{"name":"","addr":18356672,"onlyAddr":false,"type":"uint32","realType":"uint32","flags":0,"kind":7,"value":"3435925339","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356676,"onlyAddr":false,"type":"uint32","realType":"uint32","flags":0,"kind":7,"value":"410522226","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":18356672,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"needextram","addr":18356680,"onlyAddr":false,"type":"bool","realType":"bool","flags":0,"kind":1,"value":"false","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"traceback","addr":18356681,"onlyAddr":false,"type":"uint8","realType":"uint8","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"ncgocall","addr":18356688,"onlyAddr":false,"type":"uint64","realType":"uint64","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"ncgo","addr":18356696,"onlyAddr":false,"type":"int32","realType":"int32","flags":0,"kind":2,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"cgoCallersUse","addr":18356700,"onlyAddr":false,"type":"uint32","realType":"uint32","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"cgoCallers","addr":18356704,"onlyAddr":false,"type":"*runtime.cgoCallers","realType":"*runtime.cgoCallers","flags":0,"kind":22,"value":"","len":1,"cap":0,"children":[{"name":"","addr":0,"onlyAddr":false,"type":"runtime.cgoCallers","realType":"runtime.cgoCallers","flags":0,"kind":17,"value":"","len":32,"cap":-1,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"park","addr":18356712,"onlyAddr":false,"type":"runtime.note","realType":"runtime.note","flags":0,"kind":25,"value":"","len":1,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"alllink","addr":18356720,"onlyAddr":false,"type":"*runtime.m","realType":"*runtime.m","flags":0,"kind":22,"value":"","len":1,"cap":0,"children":[{"name":"","addr":0,"onlyAddr":false,"type":"runtime.m","realType":"runtime.m","flags":0,"kind":25,"value":"","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"schedlink","addr":18356728,"onlyAddr":false,"type":"runtime.muintptr","realType":"runtime.muintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"lockedg","addr":18356736,"onlyAddr":false,"type":"runtime.guintptr","realType":"runtime.guintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"createstack","addr":18356744,"onlyAddr":false,"type":"[32]uintptr","realType":"[32]uintptr","flags":0,"kind":17,"value":"","len":32,"cap":-1,"children":[{"name":"","addr":18356744,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356752,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356760,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356768,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356776,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356784,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356792,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356800,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356808,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356816,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356824,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356832,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356840,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356848,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356856,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356864,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356872,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356880,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356888,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356896,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356904,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356912,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356920,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356928,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356936,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356944,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356952,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356960,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356968,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356976,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356984,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18356992,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":18356744,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"lockedExt","addr":18357000,"onlyAddr":false,"type":"uint32","realType":"uint32","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"lockedInt","addr":18357004,"onlyAddr":false,"type":"uint32","realType":"uint32","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"nextwaitm","addr":18357008,"onlyAddr":false,"type":"runtime.muintptr","realType":"runtime.muintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"waitunlockf","addr":18357016,"onlyAddr":false,"type":"func(*runtime.g, unsafe.Pointer) bool","realType":"func(*runtime.g, unsafe.Pointer) bool","flags":0,"kind":19,"value":"","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"waitlock","addr":18357024,"onlyAddr":false,"type":"unsafe.Pointer","realType":"unsafe.Pointer","flags":0,"kind":26,"value":"","len":1,"cap":0,"children":[{"name":"","addr":0,"onlyAddr":false,"type":"void","realType":"void","flags":0,"kind":0,"value":"","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"waittraceev","addr":18357032,"onlyAddr":false,"type":"uint8","realType":"uint8","flags":0,"kind":7,"value":"23","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"waittraceskip","addr":18357040,"onlyAddr":false,"type":"int","realType":"int","flags":0,"kind":2,"value":"2","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"startingtrace","addr":18357048,"onlyAddr":false,"type":"bool","realType":"bool","flags":0,"kind":1,"value":"false","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"syscalltick","addr":18357052,"onlyAddr":false,"type":"uint32","realType":"uint32","flags":0,"kind":7,"value":"5","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"freelink","addr":18357056,"onlyAddr":false,"type":"*runtime.m","realType":"*runtime.m","flags":0,"kind":22,"value":"","len":1,"cap":0,"children":[{"name":"","addr":0,"onlyAddr":false,"type":"runtime.m","realType":"runtime.m","flags":0,"kind":25,"value":"","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"libcall","addr":18357064,"onlyAddr":false,"type":"runtime.libcall","realType":"runtime.libcall","flags":0,"kind":25,"value":"","len":6,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"libcallpc","addr":18357112,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"17211845","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"libcallsp","addr":18357120,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"libcallg","addr":18357128,"onlyAddr":false,"type":"runtime.guintptr","realType":"runtime.guintptr","flags":0,"kind":7,"value":"824633721216","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"syscall","addr":18357136,"onlyAddr":false,"type":"runtime.libcall","realType":"runtime.libcall","flags":0,"kind":25,"value":"","len":6,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"vdsoSP","addr":18357184,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"vdsoPC","addr":18357192,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"preemptGen","addr":18357200,"onlyAddr":false,"type":"uint32","realType":"uint32","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"signalPending","addr":18357204,"onlyAddr":false,"type":"uint32","realType":"uint32","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"dlogPerM","addr":18357208,"onlyAddr":false,"type":"runtime.dlogPerM","realType":"runtime.dlogPerM","flags":0,"kind":25,"value":"","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"mOS","addr":18357208,"onlyAddr":false,"type":"runtime.mOS","realType":"runtime.mOS","flags":0,"kind":25,"value":"","len":4,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"locksHeldLen","addr":18357336,"onlyAddr":false,"type":"int","realType":"int","flags":0,"kind":2,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"locksHeld","addr":18357344,"onlyAddr":false,"type":"[10]runtime.heldLockInfo","realType":"[10]runtime.heldLockInfo","flags":0,"kind":17,"value":"","len":10,"cap":-1,"children":[{"name":"","addr":18357344,"onlyAddr":false,"type":"runtime.heldLockInfo","realType":"runtime.heldLockInfo","flags":0,"kind":25,"value":"","len":2,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18357360,"onlyAddr":false,"type":"runtime.heldLockInfo","realType":"runtime.heldLockInfo","flags":0,"kind":25,"value":"","len":2,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18357376,"onlyAddr":false,"type":"runtime.heldLockInfo","realType":"runtime.heldLockInfo","flags":0,"kind":25,"value":"","len":2,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18357392,"onlyAddr":false,"type":"runtime.heldLockInfo","realType":"runtime.heldLockInfo","flags":0,"kind":25,"value":"","len":2,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18357408,"onlyAddr":false,"type":"runtime.heldLockInfo","realType":"runtime.heldLockInfo","flags":0,"kind":25,"value":"","len":2,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18357424,"onlyAddr":false,"type":"runtime.heldLockInfo","realType":"runtime.heldLockInfo","flags":0,"kind":25,"value":"","len":2,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18357440,"onlyAddr":false,"type":"runtime.heldLockInfo","realType":"runtime.heldLockInfo","flags":0,"kind":25,"value":"","len":2,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18357456,"onlyAddr":false,"type":"runtime.heldLockInfo","realType":"runtime.heldLockInfo","flags":0,"kind":25,"value":"","len":2,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18357472,"onlyAddr":false,"type":"runtime.heldLockInfo","realType":"runtime.heldLockInfo","flags":0,"kind":25,"value":"","len":2,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"","addr":18357488,"onlyAddr":false,"type":"runtime.heldLockInfo","realType":"runtime.heldLockInfo","flags":0,"kind":25,"value":"","len":2,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":18357344,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"sched","addr":824633721272,"onlyAddr":false,"type":"runtime.gobuf","realType":"runtime.gobuf","flags":0,"kind":25,"value":"","len":7,"cap":0,"children":[{"name":"sp","addr":824633721272,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"824634194352","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"pc","addr":824633721280,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"17223682","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"g","addr":824633721288,"onlyAddr":false,"type":"runtime.guintptr","realType":"runtime.guintptr","flags":0,"kind":7,"value":"824633721216","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"ctxt","addr":824633721296,"onlyAddr":false,"type":"unsafe.Pointer","realType":"unsafe.Pointer","flags":0,"kind":26,"value":"","len":1,"cap":0,"children":[{"name":"","addr":0,"onlyAddr":false,"type":"void","realType":"void","flags":0,"kind":0,"value":"","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"ret","addr":824633721304,"onlyAddr":false,"type":"runtime/internal/sys.Uintreg","realType":"runtime/internal/sys.Uintreg","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"lr","addr":824633721312,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"bp","addr":824633721320,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"824634194392","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"syscallsp","addr":824633721328,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"syscallpc","addr":824633721336,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"17211790","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"stktopsp","addr":824633721344,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"824634195936","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"param","addr":824633721352,"onlyAddr":false,"type":"unsafe.Pointer","realType":"unsafe.Pointer","flags":0,"kind":26,"value":"","len":1,"cap":0,"children":[{"name":"","addr":0,"onlyAddr":false,"type":"void","realType":"void","flags":0,"kind":0,"value":"","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"atomicstatus","addr":824633721360,"onlyAddr":false,"type":"uint32","realType":"uint32","flags":0,"kind":7,"value":"2","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"stackLock","addr":824633721364,"onlyAddr":false,"type":"uint32","realType":"uint32","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"goid","addr":824633721368,"onlyAddr":false,"type":"int64","realType":"int64","flags":0,"kind":2,"value":"1","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"schedlink","addr":824633721376,"onlyAddr":false,"type":"runtime.guintptr","realType":"runtime.guintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"waitsince","addr":824633721384,"onlyAddr":false,"type":"int64","realType":"int64","flags":0,"kind":2,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"waitreason","addr":824633721392,"onlyAddr":false,"type":"runtime.waitReason","realType":"runtime.waitReason","flags":0,"kind":7,"value":"waitReasonChanReceive (14)","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"preempt","addr":824633721393,"onlyAddr":false,"type":"bool","realType":"bool","flags":0,"kind":1,"value":"false","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"preemptStop","addr":824633721394,"onlyAddr":false,"type":"bool","realType":"bool","flags":0,"kind":1,"value":"false","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"preemptShrink","addr":824633721395,"onlyAddr":false,"type":"bool","realType":"bool","flags":0,"kind":1,"value":"false","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"asyncSafePoint","addr":824633721396,"onlyAddr":false,"type":"bool","realType":"bool","flags":0,"kind":1,"value":"false","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"paniconfault","addr":824633721397,"onlyAddr":false,"type":"bool","realType":"bool","flags":0,"kind":1,"value":"false","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"gcscandone","addr":824633721398,"onlyAddr":false,"type":"bool","realType":"bool","flags":0,"kind":1,"value":"false","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"throwsplit","addr":824633721399,"onlyAddr":false,"type":"bool","realType":"bool","flags":0,"kind":1,"value":"false","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"activeStackChans","addr":824633721400,"onlyAddr":false,"type":"bool","realType":"bool","flags":0,"kind":1,"value":"false","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"raceignore","addr":824633721401,"onlyAddr":false,"type":"int8","realType":"int8","flags":0,"kind":2,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"sysblocktraced","addr":824633721402,"onlyAddr":false,"type":"bool","realType":"bool","flags":0,"kind":1,"value":"true","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"sysexitticks","addr":824633721408,"onlyAddr":false,"type":"int64","realType":"int64","flags":0,"kind":2,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"traceseq","addr":824633721416,"onlyAddr":false,"type":"uint64","realType":"uint64","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"tracelastp","addr":824633721424,"onlyAddr":false,"type":"runtime.puintptr","realType":"runtime.puintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"lockedm","addr":824633721432,"onlyAddr":false,"type":"runtime.muintptr","realType":"runtime.muintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"sig","addr":824633721440,"onlyAddr":false,"type":"uint32","realType":"uint32","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"writebuf","addr":824633721448,"onlyAddr":false,"type":"[]uint8","realType":"[]uint8","flags":0,"kind":23,"value":"","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"sigcode0","addr":824633721472,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"sigcode1","addr":824633721480,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"sigpc","addr":824633721488,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"gopc","addr":824633721496,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"17216790","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"ancestors","addr":824633721504,"onlyAddr":false,"type":"*[]runtime.ancestorInfo","realType":"*[]runtime.ancestorInfo","flags":0,"kind":22,"value":"","len":1,"cap":0,"children":[{"name":"","addr":0,"onlyAddr":false,"type":"[]runtime.ancestorInfo","realType":"[]runtime.ancestorInfo","flags":0,"kind":23,"value":"","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"startpc","addr":824633721512,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"17017088","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"racectx","addr":824633721520,"onlyAddr":false,"type":"uintptr","realType":"uintptr","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"waiting","addr":824633721528,"onlyAddr":false,"type":"*runtime.sudog","realType":"*runtime.sudog","flags":0,"kind":22,"value":"","len":1,"cap":0,"children":[{"name":"","addr":0,"onlyAddr":false,"type":"runtime.sudog","realType":"runtime.sudog","flags":0,"kind":25,"value":"","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"cgoCtxt","addr":824633721536,"onlyAddr":false,"type":"[]uintptr","realType":"[]uintptr","flags":0,"kind":23,"value":"","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"labels","addr":824633721560,"onlyAddr":false,"type":"unsafe.Pointer","realType":"unsafe.Pointer","flags":0,"kind":26,"value":"","len":1,"cap":0,"children":[{"name":"","addr":0,"onlyAddr":false,"type":"void","realType":"void","flags":0,"kind":0,"value":"","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"timer","addr":824633721568,"onlyAddr":false,"type":"*runtime.timer","realType":"*runtime.timer","flags":0,"kind":22,"value":"","len":1,"cap":0,"children":[{"name":"","addr":0,"onlyAddr":false,"type":"runtime.timer","realType":"runtime.timer","flags":0,"kind":25,"value":"","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"selectDone","addr":824633721576,"onlyAddr":false,"type":"uint32","realType":"uint32","flags":0,"kind":7,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0},{"name":"gcAssistBytes","addr":824633721584,"onlyAddr":false,"type":"int64","realType":"int64","flags":0,"kind":2,"value":"0","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":0,"unreadable":"","LocationExpr":"","DeclLine":0}],"base":0,"unreadable":"","LocationExpr":"[0x21143:0x103aacf] DW_OP_fbreg -0x28 ","DeclLine":115},{"name":"needUnlock","addr":824634195886,"onlyAddr":false,"type":"bool","realType":"bool","flags":0,"kind":1,"value":"false","len":0,"cap":0,"children":[],"base":0,"unreadable":"","LocationExpr":"[0x2111f:0x103aacf] DW_OP_fbreg -0x32 ","DeclLine":157},{"name":"fn","addr":0,"onlyAddr":false,"type":"func()","realType":"func()","flags":0,"kind":19,"value":"","len":0,"cap":0,"children":[],"base":0,"unreadable":"empty OP stack","LocationExpr":"[block] ","DeclLine":203}],"Arguments":[],"FrameOffset":-32,"FramePointerOffset":-48,"Defers":[],"Err":""},{"pc":17224289,"file":"/usr/local/go/src/runtime/asm_amd64.s","line":1374,"function":{"name":"runtime.goexit","value":17224288,"type":0,"goType":0,"optimized":true},"Locals":[],"Arguments":[],"FrameOffset":-24,"FramePointerOffset":-824634195968,"Defers":[],"Bottom":true,"Err":""}]
[16:33:28.534 UTC] To client: {"seq":0,"type":"response","request_seq":7,"command":"stackTrace","success":true,"body":{"stackFrames":[{"id":1000,"source":{"name":"main.go","path":"/Users/suzmue/simpleproj/main.go","sourceReference":0},"line":9,"column":0,"name":"main.main"},{"id":1001,"source":{"name":"proc.go","path":"/usr/local/go/src/runtime/proc.go","sourceReference":0},"line":204,"column":0,"name":"runtime.main"},{"id":1002,"source":{"name":"asm_amd64.s","path":"/usr/local/go/src/runtime/asm_amd64.s","sourceReference":0},"line":1374,"column":0,"name":"runtime.goexit"}],"totalFrames":3}}
[16:33:28.535 UTC] StackTraceResponse
[16:33:28.949 UTC] From client: scopes({"frameId":1000})
[16:33:28.949 UTC] ScopesRequest
[16:33:28.951 UTC] locals []
[16:33:28.952 UTC] functionArgs []
[16:33:28.952 UTC] To client: {"seq":0,"type":"response","request_seq":8,"command":"scopes","success":true,"body":{"scopes":[{"name":"Local","variablesReference":1000,"expensive":false}]}}
[16:33:28.954 UTC] ScopesResponse
[16:33:28.955 UTC] From client: variables({"variablesReference":1000})
[16:33:28.955 UTC] VariablesRequest
[16:33:28.956 UTC] To client: {"seq":0,"type":"response","request_seq":9,"command":"variables","success":true,"body":{"variables":[]}}
[16:33:28.956 UTC] VariablesResponse []
[16:33:31.795 UTC] From client: next({"threadId":1})
[16:33:31.795 UTC] NextRequest
[16:33:31.795 UTC] To client: {"seq":0,"type":"response","request_seq":10,"command":"next","success":true}
[16:33:31.796 UTC] NextResponse
// Delete the breakpoint
[16:33:32.510 UTC] DisconnectRequestHelper timed out after 5s.
[16:33:33.606 UTC] From client: setBreakpoints({"source":{"name":"main.go","path":"/Users/suzmue/simpleproj/main.go","sourceReference":0},"lines":[],"breakpoints":[],"sourceModified":false})
[16:33:33.607 UTC] SetBreakPointsRequest
[16:33:33.608 UTC] Halting before setting breakpoints. SkipStopEventOnce is false.
[16:33:33.615 UTC] next state {"Running":false,"Recording":false,"currentThread":{"id":607959,"pc":140735047714662,"file":"","line":0,"goroutineID":0,"ReturnValues":null},"Threads":[{"id":607959,"pc":140735047714662,"file":"","line":0,"goroutineID":0,"ReturnValues":null},{"id":608011,"pc":140735047706754,"file":"","line":0,"goroutineID":0,"ReturnValues":null},{"id":608012,"pc":140735047706754,"file":"","line":0,"goroutineID":0,"ReturnValues":null},{"id":608013,"pc":140735047706754,"file":"","line":0,"goroutineID":0,"ReturnValues":null},{"id":608014,"pc":140735047706754,"file":"","line":0,"goroutineID":0,"ReturnValues":null}],"NextInProgress":false,"exited":false,"exitStatus":0,"When":""}
[16:33:33.616 UTC] handleReenterDebug(step).
[16:33:33.617 UTC] Clearing: 1
[16:33:33.618 UTC] To client: {"seq":0,"type":"event","event":"stopped","body":{"reason":"step","threadId":1,"allThreadsStopped":true}}
[16:33:33.619 UTC] StoppedEvent("step")
[16:33:33.619 UTC] All cleared
[16:33:33.620 UTC] All set:[]
[16:33:33.620 UTC] To client: {"seq":0,"type":"response","request_seq":11,"command":"setBreakpoints","success":true,"body":{"breakpoints":[]}}
[16:33:33.621 UTC] SetBreakPointsResponse
[16:33:33.621 UTC] From client: threads(undefined)
[16:33:33.622 UTC] To client: {"seq":0,"type":"response","request_seq":12,"command":"threads","success":true,"body":{"threads":[{"id":1,"name":"Dummy"}]}}
[16:33:33.628 UTC] From client: stackTrace({"threadId":1,"startFrame":0,"levels":20})
[16:33:33.628 UTC] StackTraceRequest
[16:33:33.629 UTC] To client: {"seq":0,"type":"response","request_seq":13,"command":"stackTrace","success":false,"message":"Unable to produce stack trace as the debugger is running","body":{"error":{"id":2004,"format":"Unable to produce stack trace as the debugger is running","showUser":true}}}
[16:33:33.678 UTC] From client: stackTrace({"threadId":1,"startFrame":0,"levels":20})
[16:33:33.678 UTC] StackTraceRequest
[16:33:33.679 UTC] To client: {"seq":0,"type":"response","request_seq":14,"command":"stackTrace","success":false,"message":"Unable to produce stack trace as the debugger is running","body":{"error":{"id":2004,"format":"Unable to produce stack trace as the debugger is running","showUser":true}}}
[16:33:41.807 UTC] To client: {"seq":0,"type":"event","event":"output","body":{"category":"stdout","output":"bye\r\n"}}
[16:33:41.808 UTC] continue state {"Running":false,"Recording":false,"Threads":null,"NextInProgress":false,"exited":true,"exitStatus":0,"When":""}
[16:33:41.809 UTC] handleReenterDebug().
[16:33:41.809 UTC] To client: {"seq":0,"type":"event","event":"terminated"}
[16:33:41.810 UTC] TerminatedEvent
[16:33:42.113 UTC] From client: disconnect({"restart":false})
[16:33:42.114 UTC] DisconnectRequest
[16:33:42.114 UTC] Closing Delve.
[16:33:42.115 UTC] HaltRequest
[16:33:42.116 UTC] HaltResponse
[16:33:42.117 UTC] Failed to halt - Process 63733 has exited with status 0
[16:33:42.117 UTC] DetachRequest
[16:33:42.118 UTC] DisconnectRequest to parent to shut down protocol server.
[16:33:42.118 UTC] To client: {"seq":0,"type":"response","request_seq":15,"command":"disconnect","success":true}
[16:33:42.119 UTC] DisconnectResponse
[16:33:42.121 UTC] [Error] Process exiting with code: 0
[16:33:42.122 UTC] Sending TerminatedEvent as delve is closed
[16:33:42.122 UTC] To client: {"seq":0,"type":"event","event":"terminated"}
[16:33:47.119 UTC] DisconnectRequestHelper timed out after 5s.

This issue is caused for two reasons:

  1. The stopped event isn't skipped even though the next request was running
  2. Even if the stopped event was successfully skipped, the program would not halt on the correct line. Continue is called after the next request returns. Continue does not result in the program stopping on the correct line.
@suzmue suzmue added Debug Issues related to the debugging functionality of the extension. DelveDAP labels Oct 14, 2020
@polinasok
Copy link
Contributor

polinasok commented Oct 20, 2020

Looks like our first problem is this.skipStopEventOnce = this.continueRequestRunning. We only keep track if continue is running, not if next is running even though to issue the halt we rely on either running by checking debuggee state explicitly and not just the flag we set in continue(). We should keep track of either operation in progress since our actions to recover might be different.

Our second issue is that delve doesn't seem to know it was in the middle of next when we issued a halt (NextInProgress is false), so continue after that is just a regular continue, not a finish-next continue. In that case, we can follow @aarzilli
second suggestion and cancel next while issuing a stopped event. If we ever figure out how to get text/description to work, we can add the details that next was interrupted there, but without that functionality we can hack reason to be "paused on pause, next cancelled" and/or print an error message to Debug Console.

@polinasok
Copy link
Contributor

polinasok commented Oct 20, 2020

@aarzilli, is it normal that when next (that sleeps) is interrupted by halt, NextInProgress is not set to true nor returns an error? I think this can be more or less reproduced with Ctrl-C with dlv cli:

(dlv) next
2020-10-20T11:18:04-07:00 debug layer=rpc (async 11) <- RPCServer.Command(api.DebuggerCommand{"name":"next","ReturnInfoLoadConfig":{"FollowPointers":true,"MaxVariableRecurse":1,"MaxStringLen":64,"MaxArrayValues":64,"MaxStructFields":-1}})
2020-10-20T11:18:04-07:00 debug layer=debugger nexting
======> NOTE: Ctrl-C
2020-10-20T11:18:08-07:00 debug layer=rpc (async 12) <- RPCServer.State(rpc2.StateIn{"NonBlocking":true})
======> NOTE: NextInProgress=false
2020-10-20T11:18:08-07:00 debug layer=rpc (async 12) -> rpc2.StateOut{"State":{"Running":true,"Recording":false,"Threads":null,"NextInProgress":false,"exited":false,"exitStatus":0,"When":""}} error: ""
received SIGINT, stopping process (will not forward signal)
2020-10-20T11:18:08-07:00 debug layer=rpc (async 13) <- RPCServer.Command(api.DebuggerCommand{"name":"halt","ReturnInfoLoadConfig":null})
2020-10-20T11:18:08-07:00 debug layer=debugger halting
======> NOTE: NextInProgress=false
2020-10-20T11:18:08-07:00 debug layer=rpc (async 11) -> rpc2.CommandOut{"State":{"Running":false,"Recording":false,"currentThread":{"id":3928371,"pc":140735118235494,"file":"","line":0,"goroutineID":0,"ReturnValues":null},"Threads":[{"id":3928746,"pc":140735118227586,"file":"","line":0,"goroutineID":0,"ReturnValues":null},{"id":3928371,"pc":140735118235494,"file":"","line":0,"goroutineID":0,"ReturnValues":null},{"id":3928743,"pc":140735118227586,"file":"","line":0,"goroutineID":0,"ReturnValues":null},{"id":3928744,"pc":140735118227586,"file":"","line":0,"goroutineID":0,"ReturnValues":null},{"id":3928745,"pc":140735118227586,"file":"","line":0,"goroutineID":0,"ReturnValues":null}],"NextInProgress":false,"exited":false,"exitStatus":0,"When":""}} error: ""
======> NOTE: NextInProgress=false
2020-10-20T11:18:08-07:00 debug layer=rpc (async 13) -> rpc2.CommandOut{"State":{"Running":false,"Recording":false,"currentThread":{"id":3928371,"pc":140735118235494,"file":"","line":0,"goroutineID":0,"ReturnValues":null},"Threads":[{"id":3928371,"pc":140735118235494,"file":"","line":0,"goroutineID":0,"ReturnValues":null},{"id":3928743,"pc":140735118227586,"file":"","line":0,"goroutineID":0,"ReturnValues":null},{"id":3928744,"pc":140735118227586,"file":"","line":0,"goroutineID":0,"ReturnValues":null},{"id":3928745,"pc":140735118227586,"file":"","line":0,"goroutineID":0,"ReturnValues":null},{"id":3928746,"pc":140735118227586,"file":"","line":0,"goroutineID":0,"ReturnValues":null}],"NextInProgress":false,"exited":false,"exitStatus":0,"When":""}} error: ""
Stopped at: 0x7fff72bad766
=>no source available
(dlv) 

@aarzilli
Copy link
Contributor

aarzilli commented Oct 21, 2020

is it normal that when next (that sleeps) is interrupted by halt, NextInProgress is not set to true nor returns an error?

Halt was changed to automatically cancel any next operation in progress in march 2018 commit go-delve/delve@449b3ce to fix issue go-delve/delve#1145.

@polinasok
Copy link
Contributor

Ah, thank you for clarification.

@suzmue In that case, we can leave skipStopEventOnce the way it is, tracking if continue is in progress, and generate StoppedEvent('step') as we do now, but then instead of continuing in setBreakPointscallback, we can use an OutputEvent to print an error message to the debug console and also document this in our user docs. What do you think?

@gopherbot
Copy link
Collaborator

Change https://golang.org/cl/261078 mentions this issue: src/debugAdapter: cancel next when set breakpoints is called

gopherbot pushed a commit that referenced this issue Dec 21, 2020
…rrupted

In order to set breakpoints, a running program must be halted. When a next,
step in, or step out request is interrupted by a halt, the request
is automatically cancelled. Unlike the case when continue is interrupted,
we should not suppress a stop event and automatically continue.
Instead we issue a stopped event and log a warning to stderr.

Test that the debug adapter is able to set breakpoint requests
while the program is running continue, next, and step out requests.

Updates #787

Change-Id: I1b17a65d15fd35c628b1fa2d823c558a24a84727
Reviewed-on: https://go-review.googlesource.com/c/vscode-go/+/261078
Trust: Suzy Mueller <suzmue@golang.org>
Run-TryBot: Suzy Mueller <suzmue@golang.org>
TryBot-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Polina Sokolova <polina@google.com>
@gopherbot
Copy link
Collaborator

Change https://golang.org/cl/279416 mentions this issue: src/debugAdapter: report that next is automatically cancelled if interrupted

@hyangah
Copy link
Contributor

hyangah commented Dec 21, 2020

@suzmue @polinasok do you want to track changes for DelveDAP in a separate issue?
Or should we now move this to the DelveDAP project tracker?

@polinasok
Copy link
Contributor

This entire feature (setting breakpoints while the program is running whether on continue or step) is not yet implemented in the new adapter, so it might not make sense to file a separate issue for a bug in a feature that doesn't yet exist. When we work on the implementation, we will base it on the existing code and unittests and avoid the bug all-together.

This brings us to a more general question of how to track not-yet-implemented features. Should we be filing issues for each one? In this repo or in the delve repo? Whether or not we file the issues, it would be ideal to have a set of vscode-go unittests corresponding to the features we want to support and then we can test the new adapter against that and know exactly what is missing.

@suzmue
Copy link
Contributor Author

suzmue commented May 26, 2021

This has now been implemented in dlv-dap, with the same behavior. This is not an issue we plan to fix in either adapter.

@polinasok
Copy link
Contributor

This has now been implemented in dlv-dap, with the same behavior. This is not an issue we plan to fix in either adapter.

I believe the original issue in the old adapter was about using regular continue after setting a breakpoint and running to program completion, never pausing. Our fix was to not skip the stopped event (like we did with regular continue) and just report that next was automatically cancelled. We did not continue at all since we could not finish just the next operation. The dlv-dap adapter doesn't have the original problem. But it does cancel next if a breakpoint is set while it is running.

@cfiderer
Copy link

cfiderer commented May 31, 2021

The current behavior (delve goes bust when setting a breakpoint when the program is stopped) is absolutely annoying.
When analyzing an issue, the natural flow of work is to stop on some breakpoint, take a look around, do single-steps for a while - and to set new breakpoints or to delete existing breakpoints before continuing.

Not being able to edit breakpoints without a full debug session restart causes excessive development overhead.

@suzmue
Copy link
Contributor Author

suzmue commented Jun 1, 2021

Hi @cfiderer! The workflow that you are describing should be working using both the legacy adapter and dlv dap. If you are having a problem with this could you please file a separate issue?

This particular issue was about the behavior when a user attempts to set a breakpoint while the program is running.

@stamblerre
Copy link
Contributor

@cfiderer: Please be conscious of your language and tone when commenting on this issue tracker. You can see the Go Code of Conduct to learn more about our community standards.

@cfiderer
Copy link

cfiderer commented Jun 1, 2021

Hello @suzmue, I'll try to pin the observed behavior down to a small case and open an issue then.

@polinasok
Copy link
Contributor

@cfiderer, +1 to what @suzmue said. You should be able to set/clear/edit a breakpoint in the middle of a debug session without a restart. We currently have a legacy adapter and the experimental dlv-dap adapter. The behavior should be exactly the same for both when the program is stopped. When the program is running (either doing a continue or one of the step commands), the dlv-dap adapter will pause execution to set the breakpoint and let the user restart as needed. Please also note that when you change one breakpoint, all other breakpoints reflected in the as previously set UI should persist as well.

Please do file an issue with steps to reproduce, screenshots, etc if any of this is causing troubles.

@polinasok polinasok added the debug/legacy legacy debug adapter related issues - new issues won't be fixed label Jul 16, 2021
@golang golang locked and limited conversation to collaborators Jul 16, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
debug/legacy legacy debug adapter related issues - new issues won't be fixed Debug Issues related to the debugging functionality of the extension. FrozenDueToAge
Projects
None yet
Development

No branches or pull requests

7 participants