内置源代码位置

内置源代码位置,第1张

内置源代码位置

没有

make()
这样的。简而言之,这正在发生:

  1. 输入代码:
    make(chan int)
  2. 符号替换:
    OMAKE
  3. 符号类型检查:
    OMAKECHAN
  4. 代码生成:
    runtime·makechan

gc
,这是一种Go语言风格的C解析器,可
make
根据上下文解析调用(以简化类型检查)。

此转换在cmd / compile / internal / gc /
typecheck.go中完成

在此之后,这取决于符号有(例如,

OMAKECHAN
make(chan ...)
),相应的运行时呼叫是取代在CMD /编译/内部/ GC /
walk.go
。在
OMAKECHAN
这种情况下将是
makechan64
makechan

最后,在运行代码时,将调用pkg /
runtime中的所述替换函数。

你怎么找到这个

我倾向于通过想象这个特殊的事情可能发生在过程的哪个阶段来找到这些事情。对于

make
,在知道
make
in
的定义
pkg/runtime
(最基本的软件包)的情况下,它必须处于编译器级别,并且有可能被其他东西所替代。

然后,您必须搜索各个编译器阶段(gc, g, l),然后及时找到定义。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5170199.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存