go-delve/delve · error
can not watch variable of type %s
Error message
can not watch variable of type %s
What it means
Error "can not watch variable of type %s" thrown in go-delve/delve.
Source
Thrown at pkg/proc/breakpoints.go:740
return nil, errors.New("at least one of read and write must be set for watchpoint")
}
n, err := parser.ParseExpr(expr)
if err != nil {
return nil, err
}
xv, err := scope.evalAST(n)
if err != nil {
return nil, err
}
if xv.Addr == 0 || xv.Flags&VariableFakeAddress != 0 || xv.DwarfType == nil {
return nil, fmt.Errorf("can not watch %q", expr)
}
if xv.Unreadable != nil {
return nil, fmt.Errorf("expression %q is unreadable: %v", expr, xv.Unreadable)
}
if xv.Kind == reflect.UnsafePointer || xv.Kind == reflect.Invalid {
return nil, fmt.Errorf("can not watch variable of type %s", xv.Kind.String())
}
// Special handling for interface types
if xv.Kind == reflect.Interface {
// For interfaces, we want to watch the data they point to
// Read the interface to get the data pointer
_, data, _ := xv.readInterface()
if xv.Unreadable != nil {
return nil, fmt.Errorf("error reading interface %q: %v", expr, xv.Unreadable)
}
if data == nil {
return nil, fmt.Errorf("invalid interface %q", expr)
}
// Use the data field as our watch target
xv = data
expr = expr + " (interface data)"
}View on GitHub (pinned to a23773e6c3)
When it happens
Trigger: Thrown at pkg/proc/breakpoints.go:740 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of go-delve/delve@a23773e6c3 (2026-08-31).
Data as JSON: /api/errors/00f17c9463c81523.
Report an issue: GitHub.