1
0
mirror of https://github.com/chai2010/advanced-go-programming-book.git synced 2025-05-23 20:02:22 +00:00

调整语义

This commit is contained in:
youguanxinqing 2021-09-28 00:28:25 +08:00
parent 6065f5480c
commit 934b1c150f

View File

@ -170,7 +170,7 @@ func main() {
pkgpath.NameData: missing Go type information for global symbol: size 8
```
错误提示汇编中定义的NameData符号没有类型信息。其实Go汇编语言中定义的数据并没有所谓的类型每个符号只不过是对应一块内存而已因此NameData符号也是没有类型的。但是Go语言是带垃圾回收器的语言,Go汇编语言工作在自动垃圾回收体系框架内。当Go语言的垃圾回收器在扫描到NameData变量的时候无法知晓该变量内部是否包含指针因此就出现了这种错误。错误的根本原因并不是NameData没有类型而是NameData变量没有标注是否会含有指针信息。
错误提示汇编中定义的NameData符号没有类型信息。其实Go汇编语言中定义的数据并没有所谓的类型每个符号只不过是对应一块内存而已因此NameData符号也是没有类型的。但是Go语言是带垃圾回收器的语言Go汇编语言工作在这个自动垃圾回收体系框架内。当Go语言的垃圾回收器在扫描到NameData变量的时候无法知晓该变量内部是否包含指针因此就出现了这种错误。错误的根本原因并不是NameData没有类型而是NameData变量没有标注是否会含有指针信息。
通过给NameData变量增加一个NOPTR标志表示其中不会包含指针数据可以修复该错误