KDOC 299: appendはコンパイルすると消える
この文書のステータス
- 作成
- 2024-11-19 貴島
- レビュー
- 2024-11-22 貴島
概要
Go言語の append
が、コンパイルされるとどうなるかを見てみる。
LEAQ main..autotmp_2+64(SP), AX MOVL $3, BX MOVL $2, CX MOVL $1, DI LEAQ type:int(SB), SI PCDATA $1, $0 NOP CALL runtime.growslice(SB) MOVQ $3, 16(AX)
つまり、 append
はコンパイル時に runtime.growslice(SB)
へ変わっているように見える。デバッガで append
にステップインできないのは、コンパイル後の実行時に関数自体がなく、相当するソースコードを参照できないから、に見える。
関連
- KDOC 296: appendにステップインできないのはなぜか?。調べるきっかけになった疑問