{"record":{"id":"46d7895cbb2d4e1d","repo":"go-delve/delve","slug":"not-implemented-s","errorCode":null,"errorMessage":"not implemented: %s","messagePattern":"not implemented: (.+?)","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/proc/fncall.go","lineNumber":784,"sourceCode":"\t\t\tif err := allPointers(fv, fmt.Sprintf(\"%s.%s\", name, field.Name), f); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\tcase reflect.Array:\n\t\tfor i := int64(0); i < v.Len; i++ {\n\t\t\tsv, _ := v.sliceAccess(int(i))\n\t\t\tif err := allPointers(sv, fmt.Sprintf(\"%s[%d]\", name, i), f); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\tcase reflect.Func:\n\t\tif err := f(v.funcvalAddr(), name); err != nil {\n\t\t\treturn err\n\t\t}\n\tcase reflect.Complex64, reflect.Complex128, reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr, reflect.Bool, reflect.Float32, reflect.Float64:\n\t\t// nothing to do\n\tdefault:\n\t\tpanic(fmt.Errorf(\"not implemented: %s\", v.Kind))\n\t}\n\n\treturn nil\n}\n\nfunc pointerEscapes(addr uint64, stack stack, stacks []stack) bool {\n\tif addr >= stack.lo && addr < stack.hi {\n\t\treturn false\n\t}\n\tfor _, stack := range stacks {\n\t\tif addr >= stack.lo && addr < stack.hi {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nconst (","sourceCodeStart":766,"sourceCodeEnd":802,"githubUrl":"https://github.com/go-delve/delve/blob/a23773e6c31361e43246bc43a424ee009679b174/pkg/proc/fncall.go#L766-L802","documentation":"Delve's function-call injection walks every argument variable before a call and verifies its pointers can be tracked on the stack. When an argument variable has a reflect.Kind outside the supported set (strings, pointers/funcvals, and scalar numeric/bool/float/complex kinds), allPointers panics with this message. It signals an unsupported argument kind in the call-injection argument-scanning code, not a user error in the debugged program.","triggerScenarios":"Calling a function via dlv's 'call' command whose argument (or a field/element reachable from it, since allPointers recurses into composites) has a kind not covered by the switch, e.g. a func value not caught by the funcval case, an unsafe.Pointer, or an unusual kind produced by a malformed DWARF type.","commonSituations":"Debugging with an unsupported or very new Go version that introduces a new DWARF type mapping; calling methods with exotic argument types (unsafe.Pointer, uintptr-wrapped handles); stale Delve version that predates support for a kind.","solutions":["Upgrade Delve to the latest version so the kind is supported","Reduce the argument to a supported type (plain int/uint/bool/float/string/pointer) before calling","Avoid injecting calls with unsafe.Pointer or func-valued arguments","File an issue with the Go version and the exact argument type if the kind should be supported"],"exampleFix":"// before\ncall myFn(unsafe.Pointer(&buf))\n// after\ncall myFn((*byte)(&buf[0])) // pass a typed pointer instead","handlingStrategy":"validation","validationCode":"// Before issuing a 'call', check argument kinds are supported:\nfunc argSupported(v *proc.Variable) bool {\n\tswitch v.Kind {\n\tcase reflect.String, reflect.Ptr, reflect.Func,\n\t\treflect.Complex64, reflect.Complex128,\n\t\treflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64,\n\t\treflect.Uintptr, reflect.Bool, reflect.Float32, reflect.Float64:\n\t\treturn true\n\t}\n\treturn false // unsupported kind would panic in allPointers\n}","typeGuard":"func isSupportedKind(k reflect.Kind) bool {\n\tswitch k {\n\tcase reflect.String, reflect.Ptr, reflect.Func,\n\t\treflect.Complex64, reflect.Complex128,\n\t\treflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64,\n\t\treflect.Uintptr, reflect.Bool, reflect.Float32, reflect.Float64:\n\t\treturn true\n\t}\n\treturn false\n}","tryCatchPattern":null,"preventionTips":["Call only functions with scalar, string, or pointer arguments via dlv 'call'","Keep Delve updated for newly supported kinds","Avoid unsafe.Pointer/func-typed arguments in injected calls","If a kind should be supported, report it with Go version and type"],"tags":["go","fncall","unsupported-type","debugger"],"backgroundTag":"fncall-unsupported-argument-kind","analyzedSha":"a23773e6c31361e43246bc43a424ee009679b174","analyzedAt":"2026-08-31T15:12:45.221Z","schemaVersion":2},"datasetVersion":"2026-08-31T19:17:28.585Z"}