{"record":{"id":"d3668c8f5a35cab6","repo":"go-delve/delve","slug":"not-implemented-d3668c","errorCode":null,"errorMessage":"not implemented","messagePattern":"not implemented","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/proc/core/core.go","lineNumber":281,"sourceCode":"\n// When does not apply to core files, it is to support the Mozilla 'rr' backend.\nfunc (p *process) When() (string, error) { return \"\", nil }\n\n// Checkpoint for core files returns an error, there is no execution of a core file.\nfunc (p *process) Checkpoint(string) (int, error) { return -1, ErrContinueCore }\n\n// Checkpoints returns nil on core files, you cannot set checkpoints when debugging core files.\nfunc (p *process) Checkpoints() ([]proc.Checkpoint, error) { return nil, nil }\n\n// ClearCheckpoint clears a checkpoint, but will only return an error for core files.\nfunc (p *process) ClearCheckpoint(int) error { return errors.New(\"checkpoint not found\") }\n\nfunc (p *process) SupportsBPF() bool {\n\treturn false\n}\n\nfunc (p *process) SetUProbe(fnName string, goidOffset int64, args []ebpf.UProbeArgMap) error {\n\tpanic(\"not implemented\")\n}\n\n// StartCallInjection notifies the backend that we are about to inject a function call.\nfunc (p *process) StartCallInjection() (func(), error) { return func() {}, nil }\n\nfunc (p *process) EnableURetProbes() error {\n\tpanic(\"not implemented\")\n}\n\nfunc (p *process) DisableURetProbes() error {\n\tpanic(\"not implemented\")\n}\n\n// ReadMemory will return memory from the core file at the specified location and put the\n// read memory into `data`, returning the length read, and returning an error if\n// the length read is shorter than the length of the `data` buffer.\nfunc (p *process) ReadMemory(data []byte, addr uint64) (n int, err error) {\n\tn, err = p.mem.ReadMemory(data, addr)","sourceCodeStart":263,"sourceCodeEnd":299,"githubUrl":"https://github.com/go-delve/delve/blob/a23773e6c31361e43246bc43a424ee009679b174/pkg/proc/core/core.go#L263-L299","documentation":"The core-file backend (pkg/proc/core) implements Process for offline analysis of core dumps. SetUProbe, which registers a non-stop eBPF uprobes tracepoint on a function, cannot work on a static core dump — there is no live process to attach a uprobe to. The stub therefore panics to make it obvious this operation is unsupported for core files.","triggerScenarios":"Calling SetUProbe on a Process obtained from a core dump, e.g. via debugger features that use eBPF tracing (trace subcommand with --ebpf, follow-exec tracing) while attached to a core file instead of a live process.","commonSituations":"Running 'dlv core dumpfile binary' and attempting tracepoint/eBPF-based tracing; a client (IDE plugin, CLI) issuing SetUProbe-like requests against a core session; tests that mix core-file and ebpf backends.","solutions":["Only use eBPF/tracepoint tracing with live backends (native); use breakpoints on the core session for offline inspection","Guard code paths: check the backend kind before calling SetUProbe","Replace the panic in the stub with a returned error if you fork Delve and want graceful degradation"],"exampleFix":"// before\nfunc (p *process) SetUProbe(fnName string, goidOffset int64, args []ebpf.UProbeArgMap) error {\n\tpanic(\"not implemented\")\n}\n// after\nfunc (p *process) SetUProbe(fnName string, goidOffset int64, args []ebpf.UProbeArgMap) error {\n\treturn errors.New(\"SetUProbe not supported for core files\")\n}","handlingStrategy":"validation","validationCode":"if isCoreSession(proc) {\n\treturn errors.New(\"SetUProbe not supported for core files\")\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Check the backend (native vs core vs gdbserial) before enabling eBPF tracing features","Never route 'trace --ebpf' requests to core-file sessions","Prefer explicit errors over interface stubs that panic when writing backend code"],"tags":["core-dump","ebpf","unsupported-operation","panic"],"backgroundTag":"unsupported-backend-operation","analyzedSha":"a23773e6c31361e43246bc43a424ee009679b174","analyzedAt":"2026-08-31T15:12:45.221Z","schemaVersion":2},"datasetVersion":"2026-08-31T19:17:28.585Z"}