vscode-go icon indicating copy to clipboard operation
vscode-go copied to clipboard

debug: Is there a way to step into a new coroutine when using a handler?

Open jacksonfu opened this issue 1 year ago • 0 comments

Is your feature request related to a problem? Please describe. hi Sometime, dont clearly know which handler to call, so dont eaily to directly break at the func. VS Code Go extension:v0.41.0

type handler func(s string)
func myHandler(s string) {
	fmt.Println(s) // not stop at this line
}
func main() {
    h := handler(myHandler)
    go h("Hello, World!")// set a breakpoint on this line and use step into
    time.Sleep(8 * time.Second)// but stop at this line
}

issue1

Describe the solution you'd like

await call(sth)

Like debuging js through chrome, we can set a breakpoint either on await or on call. (Maybe inappropriate analogy)

Describe alternatives you've considered

  1. If there a viable alternative to jump through the value of variable. Also like debuging js through chrome, if the value is a callable obj, we can directly jump into the function and can also set the breakpoint. issue1

  2. If we can monitor when a new coroutine start to run.

Additional context It works fine if I use as follow:

go func(){
h("Hello, World!")}() // set breakpoint on this line, but kind of tedious

Many thanks to you!

jacksonfu avatar Feb 18 '24 09:02 jacksonfu