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

lldbを使ってCRubyの中を覗く

 lldbを使ってCRubyの中を覗く

Avatar for Koji NAKAMURA

Koji NAKAMURA

August 25, 2026

More Decks by Koji NAKAMURA

Other Decks in Technology

Transcript

  1. 今回のゴール • Rubyコード → ISeq を確認 • 確認した ISeq から何かしらの

    CRuby コードが動いている ぞ!っていう部分の繋がりを確認する
  2. Rubyコード → ISeq → CRuby実装 の繋がり • {} → newhash

    → rb_hash_new • h[:a] = → opt_aset → vm_opt_aset → rb_hash_aset • h[:a] → opt_aref → vm_opt_aref → rb_hash_aref
  3. lldbで動かしてみて • Rubyコード → ISeq → CRuby実装 をなんとなく理解 • と同時に分からないことが複数一気に出てきた

    ◦ insns.defの見方 ◦ insns.defにある「attr bool leaf = false;」とは? ▪ LLM曰く「VMの世界から外に出うる命令」らしい??? ◦ insns.defにあるコード片?が実際にどう統合される? ◦ and more …
  4. EOF