作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!
通常,可以通过命令行工具,来查看一个代码文件对应的汇编代码:
go build -gcflags -S api.go
// 或者
go tool compile -S api.go
但是其中杂七杂八的信息太多了,可读性并不好。
所幸找到了https://github.com/loov/lensm 这个工具:
- github: https://github.com/loov/lensm
- 作者的介绍文章:Lensm, A Tool for Viewing Disassembly
MacOS 下安装
- 先安装最新的 golang v1.21.3
- 执行:
go install loov.dev/lensm@main
运行
- 需要先编译可执行文件
- 仅仅只编译.o文件也可以,但是这样会找不到符号表。
- 命令行执行:
lensm xxx_executable
这个工具真赞!