{"record":{"id":"2d0cf399f142c11d","repo":"go-delve/delve","slug":"unknown-or-unsupported-kind-q","errorCode":null,"errorMessage":"unknown or unsupported kind: %q","messagePattern":"unknown or unsupported kind: %q","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"pkg/proc/variables.go","lineNumber":1491,"sourceCode":"\t\tif err == nil {\n\t\t\tv.Value = constant.MakeBool(val[0] != 0)\n\t\t}\n\tcase reflect.Float32, reflect.Float64:\n\t\tvar val float64\n\t\tval, v.Unreadable = v.readFloatRaw(v.RealType.(*godwarf.FloatType).ByteSize)\n\t\tv.Value = constant.MakeFloat64(val)\n\t\tswitch {\n\t\tcase math.IsInf(val, +1):\n\t\t\tv.FloatSpecial = FloatIsPosInf\n\t\tcase math.IsInf(val, -1):\n\t\t\tv.FloatSpecial = FloatIsNegInf\n\t\tcase math.IsNaN(val):\n\t\t\tv.FloatSpecial = FloatIsNaN\n\t\t}\n\tcase reflect.Func:\n\t\tv.loadFunctionPtr(recurseLevel, cfg)\n\tdefault:\n\t\tv.Unreadable = fmt.Errorf(\"unknown or unsupported kind: %q\", v.Kind.String())\n\t}\n}\n\n// convertToEface converts srcv into an \"interface {}\" and writes it to\n// dstv.\n// Dstv must be a variable of type \"interface {}\" and srcv must either be an\n// interface or a pointer shaped variable (map, channel, pointer or struct\n// containing a single pointer)\nfunc convertToEface(srcv, dstv *Variable) error {\n\tif dstv.RealType.String() != \"interface {}\" {\n\t\treturn &typeConvErr{srcv.DwarfType, dstv.RealType}\n\t}\n\tif _, isiface := srcv.RealType.(*godwarf.InterfaceType); isiface {\n\t\t// iface -> eface conversion\n\t\t_type, data, _ := srcv.readInterface()\n\t\tif srcv.Unreadable != nil {\n\t\t\treturn srcv.Unreadable\n\t\t}","sourceCodeStart":1473,"sourceCodeEnd":1509,"githubUrl":"https://github.com/go-delve/delve/blob/a23773e6c31361e43246bc43a424ee009679b174/pkg/proc/variables.go#L1473-L1509","documentation":"During `loadValue`, the variable's `reflect.Kind` was not one of the kinds Delve knows how to display (numbers, strings, structs, maps, chans, funcs, etc.). The value is marked unreadable with this error instead of being loaded. This indicates either a Delve gap or a corrupted/unsupported type.","triggerScenarios":"Evaluating a variable whose resolved DWARF type maps to an unsupported reflect.Kind in `Variable.loadValue`; may be hit via CLI print, RPC2 EvalVariable, or DAP evaluate on exotic types.","commonSituations":"Debugging types produced by unsafe casts or cgo where the DWARF type resolves to an odd kind; Delve version lag on newly added runtime types; corrupted binary info making kind resolution produce Invalid/unsupported kinds.","solutions":["Upgrade to the latest Delve release; support for kinds is added over time.","Cast or reinterpret the value into a supported type, e.g. view the underlying memory as a struct or uintptr.","Inspect the type with `print` on a narrower sub-expression (e.g. individual fields).","If reproducible on a normal Go type, file a Delve issue with the type and Go version."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"// (dlv) print reflect.TypeOf-like inspection: print the variable alone\n// and check the displayed type before deep evaluation.","typeGuard":null,"tryCatchPattern":"// In RPC2 clients, check the returned Variable.Unreadable field:\nif strings.Contains(v.Unreadable.Error(), \"unknown or unsupported kind\") {\n    // fall back to raw memory inspection\n}","preventionTips":["Keep Delve up to date; kind support grows with Go releases.","Avoid evaluating values produced by unsafe casts; reinterpret as a supported type.","Narrow expressions to fields with well-supported types."],"tags":["debugger","go","type-loading","unsupported-type"],"backgroundTag":"unsupported-reflect-kind","analyzedSha":"a23773e6c31361e43246bc43a424ee009679b174","analyzedAt":"2026-08-31T15:12:45.221Z","schemaVersion":2},"datasetVersion":"2026-08-31T19:17:28.585Z"}