目录

Go 汇编反汇编

1. 查看Go程序的汇编代码

查看Go程序的汇编代码有多种方法:

  1. 使用objdump工具:objdump -S go二进制文件
  2. 使用gdb disassemble
  3. 使用go tool工具生成汇编代码文件:go build -gcflags '-S' xx.go > xx.s 2>&1
  4. 将Go代码编译成汇编代码:go tool compile -S xx.go > xx.s
  5. 使用go tool工具反编译Go程序:go tool objdump -S go-binary > xx.s
1
2
3
4
// 编译
GOARCH=386 go tool compile -N -l test.go
// 反编译
GOARCH=386 go tool objdump -gnu test.o

交叉编译

1
2
3
4
GOOS=linux GOARCH=amd64 go build

// 交叉编译支持的所有架构
$GOROOT/src/go/build/syslist.go

参考资料

  1. Debugging Performance Issues in Go Programs
  2. go.dev/doc/diagnostics
  3. go-perfbook
  4. talk-yapc-asia-2015