Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Go言語はstack overflowの夢を見るか?

Go言語はstack overflowの夢を見るか?

2025/10/14 Go Night Talks – After Conferenceにて登壇した際の資料です。

Avatar for Takuto Nagami

Takuto Nagami

October 14, 2025
Tweet

More Decks by Takuto Nagami

Other Decks in Programming

Transcript

  1. 自己紹介 • Takuto Nagami • 千葉工業大学 情報科学部 情報ネットワーク学科 4年 •

    Gophers EXの発起人/代表 • 最近Goでやった/やること ◦ Go Conference パネラー登壇 ◦ Go 1.25 リリパ 登壇 (Green Tea) ◦ GopherCon Tour 報告会 (予定、後で宣伝) ◦ Go West Conference 英語登壇 (予定)
  2. アプリケーションから見たメモリ . . . • Key-value storeの形で表される ◦ Key: Memory

    address ◦ Value: 各アドレス1バイト • ほとんどの高級言語は、変数を メモリに格納する時、スタック とヒープの2つの領域を(言語側 で作って)使い分ける 0x0000 0x0001 0x0002 0x0003
  3. . . . main() stack frame 5 a() stack frame

    5 スタック {arg addr} {v addr}
  4. . . . main() stack frame 5 a() stack frame

    5 7 スタック {arg addr} {a addr} {v addr}
  5. . . スタック main() stack frame 5 a() stack frame

    {arg addr} {a addr} {v addr} 5 7 b() stack frame
  6. . . スタック main() stack frame 5 a() stack frame

    {arg addr} {arg addr} {a addr} {v addr} 5 7 b() stack frame 7
  7. . . スタック main() stack frame 5 a() stack frame

    {arg addr} {b addr} {arg addr} {a addr} {v addr} 5 7 b() stack frame 7 1
  8. . . . スタック main() stack frame 5 a() stack

    frame {arg addr} {a addr} {v addr} 5 7
  9. イメージ main goroutine main() stack frame a() stack frame a2()

    stack frame a3() stack frame a4() stack frame m2() stack frame b() stack frame a goroutine b goroutine