{"record":{"id":"b0463c6909c7734e","repo":"golang/go","slug":"unknown-load-address-b0463c","errorCode":null,"errorMessage":"unknown load address","messagePattern":"unknown load address","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"src/cmd/internal/objfile/macho.go","lineNumber":124,"sourceCode":"\tcase macho.Cpu386:\n\t\treturn \"386\"\n\tcase macho.CpuAmd64:\n\t\treturn \"amd64\"\n\tcase macho.CpuArm:\n\t\treturn \"arm\"\n\tcase macho.CpuArm64:\n\t\treturn \"arm64\"\n\tcase macho.CpuPpc64:\n\t\treturn \"ppc64\"\n\t}\n\treturn \"\"\n}\n\nfunc (f *machoFile) loadAddress() (uint64, error) {\n\tif seg := f.macho.Segment(\"__TEXT\"); seg != nil {\n\t\treturn seg.Addr, nil\n\t}\n\treturn 0, fmt.Errorf(\"unknown load address\")\n}\n\nfunc (f *machoFile) dwarf() (*dwarf.Data, error) {\n\treturn f.macho.DWARF()\n}\n","sourceCodeStart":106,"sourceCodeEnd":130,"githubUrl":"https://github.com/golang/go/blob/b6b368adc57c96c3151d224d172029f233ead2c3/src/cmd/internal/objfile/macho.go#L106-L130","documentation":"When analyzing a Mach-O binary, `machoFile.loadAddress()` looks for the `__TEXT` segment to determine the base load address. If no `__TEXT` segment exists, this error is returned. The `__TEXT` segment is standard in all macOS executables and shared libraries; its absence indicates a non-standard or corrupt Mach-O file.","triggerScenarios":"Calling `File.LoadAddress()` on a Mach-O file whose segment list does not include `__TEXT`. Occurs with non-standard Mach-O files, corrupted binaries, or Mach-O files generated by tools that use non-standard segment naming.","commonSituations":"Analyzing a stripped or post-processed macOS binary. Pointing pprof at a Mach-O file that is not a normal executable (e.g., a symbol stub, a kernel extension with non-standard layout). Corrupt Mach-O headers from incomplete downloads or filesystem issues.","solutions":["Verify the `__TEXT` segment exists: `otool -l <file> | grep __TEXT`.","Rebuild the binary with standard macOS linking.","Ensure the file is a genuine Mach-O executable: `file <path>`.","If the binary is corrupt, re-download or rebuild it."],"exampleFix":"// before — Mach-O with no __TEXT segment\nf, err := objfile.Open(\"weird_bin\")\naddr, err := f.LoadAddress()  // fails\n\n// after — use a properly linked macOS binary\nf, err := objfile.Open(\"go_binary\")\naddr, err := f.LoadAddress()  // succeeds","handlingStrategy":"fallback","validationCode":"// Check for __TEXT segment in Mach-O\nfunc hasTextSegment(path string) bool {\n    f, err := macho.Open(path)\n    if err != nil { return false }\n    defer f.Close()\n    return f.Segment(\"__TEXT\") != nil\n}","typeGuard":null,"tryCatchPattern":"addr, err := f.LoadAddress()\nif err != nil && strings.Contains(err.Error(), \"unknown load address\") {\n    // Non-standard Mach-O; use 0 as fallback\n    addr = 0\n}","preventionTips":["Verify __TEXT segment exists with 'otool -l <file> | grep __TEXT'.","Ensure the binary is a genuine Mach-O executable: 'file <path>'.","Re-download or rebuild corrupt binaries before analysis."],"tags":["macho","binary-analysis","load-address","macos","objfile"],"analyzedSha":"b6b368adc57c96c3151d224d172029f233ead2c3","analyzedAt":"2026-08-12T00:22:02.250Z","schemaVersion":2},"datasetVersion":"2026-08-12T08:17:17.861Z"}