Go的源码是Plan 9汇编与Go语言的混合使用,即有汇编调用Go,也有Go调用汇编。在很多情况下,直接看汇编代码更直观,特别是在研究编译器生成的函数实现时更有用。下面介绍两种反汇编方法:
假设有个helloworld.go程序,源码如下:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
先将代码编译成二进制,命令如下:
go build --gcflags="-l -N" -o helloworld
会生成一个helloworld的二进制,--gcflags="-l -N"参数的作用是去掉编译器优化,使生成的汇编代码与编写的代码更相近,同时也方便GDB调试。
Go语言源码反汇编技巧

最低0.47元/天 解锁文章
1381

被折叠的 条评论
为什么被折叠?



