{"record":{"id":"c4131c27af1f9b8d","repo":"golang/go","slug":"printing-assembly-in-intel-syntax-is-not-supported","errorCode":null,"errorMessage":"printing assembly in Intel syntax is not supported","messagePattern":"printing assembly in Intel syntax is not supported","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"src/cmd/pprof/pprof.go","lineNumber":193,"sourceCode":"\t\tname: name,\n\t\tfile: of,\n\t}\n\tif start != 0 {\n\t\tif load, err := of.LoadAddress(); err == nil {\n\t\t\tf.offset = start - load\n\t\t}\n\t}\n\treturn f, nil\n}\n\nfunc (*objTool) Demangle(names []string) (map[string]string, error) {\n\t// No C++, nothing to demangle.\n\treturn make(map[string]string), nil\n}\n\nfunc (t *objTool) Disasm(file string, start, end uint64, intelSyntax bool) ([]driver.Inst, error) {\n\tif intelSyntax {\n\t\treturn nil, fmt.Errorf(\"printing assembly in Intel syntax is not supported\")\n\t}\n\td, err := t.cachedDisasm(file)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar asm []driver.Inst\n\td.Decode(start, end, nil, false, func(pc, size uint64, file string, line int, text string) {\n\t\tasm = append(asm, driver.Inst{Addr: pc, File: file, Line: line, Text: text})\n\t})\n\treturn asm, nil\n}\n\nfunc (t *objTool) cachedDisasm(file string) (*disasm.Disasm, error) {\n\tt.mu.Lock()\n\tdefer t.mu.Unlock()\n\tif t.disasmCache == nil {\n\t\tt.disasmCache = make(map[string]*disasm.Disasm)\n\t}","sourceCodeStart":175,"sourceCodeEnd":211,"githubUrl":"https://github.com/golang/go/blob/b6b368adc57c96c3151d224d172029f233ead2c3/src/cmd/pprof/pprof.go#L175-L211","documentation":"The pprof tool's built-in Go-based disassembler (`objTool.Disasm`) was called with `intelSyntax=true`, but Intel syntax output is not implemented. The Go-native disassembly path uses the `disasm` package which only produces AT&T-syntax assembly. This limitation exists because the tool reimplements disassembly using Go libraries rather than invoking GNU binutils `objdump`.","triggerScenarios":"Fires in `objTool.Disasm` at pprof.go:191-193 when the `intelSyntax` parameter is true. This happens when the pprof web UI or CLI requests Intel syntax disassembly (commonly toggled in the pprof web interface or requested via the `-intel` option in the disassembly view).","commonSituations":"Clicking the 'Disassembly' link in the pprof web UI and selecting Intel syntax. Running pprof on a system where the native objdump is not available (so Go falls back to the built-in disassembler) and requesting Intel syntax. Developers more familiar with Intel syntax (common on Windows) trying to read disassembly on a Go-only system.","solutions":["Use AT&T syntax instead — pass `intelSyntax=false` or toggle the syntax option off in the pprof UI.","Install GNU binutils `objdump` on the system so pprof uses it instead of the built-in Go disassembler; objdump supports Intel syntax.","If Intel syntax is required for the built-in path, contribute an implementation to the Go project (the disasm package would need Intel syntax support).","Use an external disassembler (objdump, ndisasm) on the extracted binary as a workaround."],"exampleFix":"# Before: requesting Intel syntax (fails with Go built-in disassembler)\npprof -http :8080 binary prof  # then select Intel in UI\n\n# After: install objdump so Intel syntax works, or use AT&T syntax\n# On Debian/Ubuntu:\nsudo apt install binutils\n# Or use AT&T syntax (default):\npprof -http :8080 binary prof","handlingStrategy":"fallback","validationCode":"// Check if objdump is available for Intel syntax support\nif _, err := exec.LookPath(\"objdump\"); err == nil {\n    // pprof will use objdump which supports Intel syntax\n} else {\n    // Must use AT&T syntax with built-in Go disassembler\n    fmt.Println(\"Install binutils for Intel syntax support\")\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Install GNU binutils (objdump) on systems where you need Intel syntax disassembly in pprof.","Use AT&T syntax (the default) when objdump is not available.","On Windows, install MSYS2 or WSL to get objdump for Intel syntax support."],"tags":["pprof","disassembly","intel-syntax","att-syntax","binutils"],"backgroundTag":null,"analyzedSha":"b6b368adc57c96c3151d224d172029f233ead2c3","analyzedAt":"2026-08-12T00:22:02.250Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}