liyan-ah / liyan-ah.github.io

my blog
https://liyan-ah.github.io/
MIT License
1 stars 0 forks source link

go-1.17 调用规约 | 李岩's Blog #22

Open liyan-ah opened 1 year ago

liyan-ah commented 1 year ago

https://liyan-ah.github.io/2023/03/03/golang-1-17-%E5%8F%82%E6%95%B0%E8%B0%83%E7%94%A8%E8%A7%84%E7%BA%A6/#more

go-1.17是一个很不友好的版本,这里我指的是函数调用规约的变更。在此之前,虽然栈传参比较奇怪,但是在掌握了规律后,参数信息很好获取。升级到go-1.17之后,笔者发现变更后的寄存器传值方式并不是系统的调用规约,至少和C/C++的是完全不一致的。这个问题使得笔者在处理ebpf方案时,始终无法覆盖go-1.17+的版本。虽然短期不会造成影响,线上服务使用的大多还在go-1.16以下,但是这始终是

liyan-ah commented 1 year ago

https://github.com/golang/go/blob/master/src/cmd/compile/abi-internal.md 找到了官网文档