{"record":{"id":"1eb30b0f7a9abf45","repo":"go-delve/delve","slug":"not-implemented-1eb30b","errorCode":null,"errorMessage":"not implemented","messagePattern":"not implemented","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/proc/dump.go","lineNumber":146,"sourceCode":"\t}\n\n\tfhdr.Type = elf.ET_CORE\n\n\tswitch bi.Arch.Name {\n\tcase \"amd64\":\n\t\tfhdr.Machine = elf.EM_X86_64\n\tcase \"386\":\n\t\tfhdr.Machine = elf.EM_386\n\tcase \"arm64\":\n\t\tfhdr.Machine = elf.EM_AARCH64\n\tcase \"ppc64le\":\n\t\tfhdr.Machine = elf.EM_PPC64\n\tcase \"riscv64\":\n\t\tfhdr.Machine = elf.EM_RISCV\n\tcase \"loong64\":\n\t\tfhdr.Machine = elf.EM_LOONGARCH\n\tdefault:\n\t\tpanic(\"not implemented\")\n\t}\n\n\tfhdr.Entry = 0\n\n\tw := elfwriter.New(out, &fhdr)\n\n\tnotes := []elfwriter.Note{}\n\n\tentryPoint, err := t.EntryPoint()\n\tif err != nil {\n\t\tstate.setErr(err)\n\t\treturn\n\t}\n\n\tnotes = append(notes, elfwriter.Note{\n\t\tType: elfwriter.DelveHeaderNoteType,\n\t\tName: \"Delve Header\",\n\t\tData: fmt.Appendf(nil, \"%s/%s\\n%s\\n%s%d\\n%s%#x\\n\", bi.GOOS, bi.Arch.Name, version.DelveVersion.String(), elfwriter.DelveHeaderTargetPidPrefix, t.pid, elfwriter.DelveHeaderEntryPointPrefix, entryPoint),","sourceCodeStart":128,"sourceCodeEnd":164,"githubUrl":"https://github.com/go-delve/delve/blob/a23773e6c31361e43246bc43a424ee009679b174/pkg/proc/dump.go#L128-L164","documentation":"pkg/proc/dump.go writes a core dump of the debugged process. When constructing the ELF file header it maps the target's GOARCH string to an ELF machine type (EM_X86_64, EM_AARCH64, ...). If the architecture is one the dump writer has no case for, it panics 'not implemented' — meaning 'dlv dump' does not support producing a core file for that architecture yet.","triggerScenarios":"Running the dump command (debugger.Dump → pkg/proc/dump.go) with a target whose arch is any value other than amd64, arm64, 386, ppc64le, riscv64, or loong64 — e.g. an unrecognized or missing arch string.","commonSituations":"Creating core dumps on unsupported architectures; cross-debugging binaries built for a GOARCH Delve's dumper doesn't cover; running on newly ported architectures before dump support lands.","solutions":["Use a supported architecture (amd64, arm64, 386, ppc64le, riscv64, loong64) when creating dumps","Inspect the arch string reaching Dump and add the missing elf.EM_* case if adding support for a new architecture","For unsupported arches, capture a core dump via the OS instead (ulimit -c unlimited + core_pattern) rather than 'dlv dump'"],"exampleFix":"// before\ndefault:\n\tpanic(\"not implemented\")\n// after\ndefault:\n\treturn fmt.Errorf(\"core dump generation not implemented for architecture %q\", arch)","handlingStrategy":"validation","validationCode":"var supportedDumpArches = map[string]bool{\"amd64\":true,\"arm64\":true,\"386\":true,\"ppc64le\":true,\"riscv64\":true,\"loong64\":true}\nif !supportedDumpArches[arch] {\n\treturn fmt.Errorf(\"dlv dump not supported on %s; capture an OS core dump instead\", arch)\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Check GOARCH against Delve's supported dump list before invoking the dump command","On unsupported arches fall back to OS-level core capture (ulimit -c / core_pattern)","Keep a table of dump-vs-debug feature support per architecture in your tooling"],"tags":["core-dump","elf","architecture-support","panic"],"backgroundTag":"unsupported-architecture","analyzedSha":"a23773e6c31361e43246bc43a424ee009679b174","analyzedAt":"2026-08-31T15:12:45.221Z","schemaVersion":2},"datasetVersion":"2026-08-31T22:30:34.772Z"}