go汇编调试方法
plan9基本知识:
首先我们学习如何用vscode+delve来调试go的plan9汇编代码.
首先我们用vscode配置好go的运行环境.能正确打印helloworld代码.
编写代码:
//main.go
package main
func main() {
var aaa = Sum(2, 4)
print(aaa)
}
func Sum(x, y int) int
//add.s
TEXT ·Sum(SB), $0-8
MOVQ x+0(FP), AX // 将第一个参数 x 放入 AX
MOVQ y+8(FP), BX // 将第二个参数 y 放入 BX
ADDQ BX, AX // 将 BX 加到 AX
MOVQ AX, ret+16(FP) // 将结果从 AX 移到返回值位置
RET // 返回
之后我们sum这行在go代码里面打断点.单步调试就会发现delve调试器自动进入了汇编代码中.
这时候我们在watch里面可以输入寄存器名字这些来查看寄存器.
一些关键寄存器: RSP, RBP, RAX, RBX, RCX, RDX, RSI, RDI