{"record":{"id":"33eddff925ee4843","repo":"golang/go","slug":"unknown-load-address-33eddf","errorCode":null,"errorMessage":"unknown load address","messagePattern":"unknown load address","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"info","filePath":"src/cmd/internal/objfile/xcoff.go","lineNumber":157,"sourceCode":"\tdata, err := sect.Data()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn data[ssym.Value:esym.Value], nil\n}\n\nfunc (f *xcoffFile) goarch() string {\n\tswitch f.xcoff.TargetMachine {\n\tcase xcoff.U802TOCMAGIC:\n\t\treturn \"ppc\"\n\tcase xcoff.U64_TOCMAGIC:\n\t\treturn \"ppc64\"\n\t}\n\treturn \"\"\n}\n\nfunc (f *xcoffFile) loadAddress() (uint64, error) {\n\treturn 0, fmt.Errorf(\"unknown load address\")\n}\n\nfunc (f *xcoffFile) dwarf() (*dwarf.Data, error) {\n\treturn f.xcoff.DWARF()\n}\n","sourceCodeStart":139,"sourceCodeEnd":163,"githubUrl":"https://github.com/golang/go/blob/b6b368adc57c96c3151d224d172029f233ead2c3/src/cmd/internal/objfile/xcoff.go#L139-L163","documentation":"xcoffFile.loadAddress() unconditionally returns 'unknown load address'. The XCOFF backend does not recover a fixed image base the way PE/ELF do, so it declines rather than fabricate one. Callers needing a base should use textStart from text().","triggerScenarios":"Any call to xcoffFile.loadAddress() — a permanent limitation of the XCOFF backend, not a transient failure.","commonSituations":"A tool that uniformly calls loadAddress across backends will always hit this for XCOFF binaries. Expected behavior.","solutions":["Do not rely on loadAddress for XCOFF; use the textStart returned from text().","Treat this specific error as non-fatal in the caller."],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":"// XCOFF has no recoverable load address; detect the backend and skip loadAddress.\n// switch pf.(type) {\n// case *xcoffFile:\n//     // use textStart from text() instead\n// default:\n//     base, err = pf.loadAddress()\n// }","tryCatchPattern":"// base, err := pf.loadAddress()\n// if err != nil && err.Error() == \"unknown load address\" {\n//     // expected for xcoff; fall back to textStart\n// }","preventionTips":["Never rely on loadAddress for XCOFF binaries.","Use textStart from text() as the base address instead.","Treat 'unknown load address' as informational for XCOFF."],"tags":["xcoff","aix","objfile","load-address","permanent-limitation"],"analyzedSha":"b6b368adc57c96c3151d224d172029f233ead2c3","analyzedAt":"2026-08-12T00:22:02.250Z","schemaVersion":2},"datasetVersion":"2026-08-12T08:17:17.861Z"}