main 函数栈帧的建立 · 逐指令交互演示
Clang 21 / x86-64 · 基于 LLDB 实测指令与地址 · 低地址在上 · 展示从 libc 调用 main 到局部变量初始化完成的过程
← 上一条指令
▶ 自动播放
下一条指令 →
速度
正常
慢速
快速
回到起点
脚本尚未执行(请检查浏览器是否允许此页面运行 JavaScript)
指令流 · 反汇编
%rip =
其他寄存器 · 相关数值
读图约定
内存图从上到下地址增大,左侧疏密线只表示地址方向。%rsp / %rbp 在栈图中以边界箭头表达;返回地址与旧 rbp 各为完整 8 字节对象。虚线、移动中的箭头和写入高亮属于
单条指令的教学展开
,不是可在 LLDB 中逐条停下的中间指令状态。
连续栈内存 · 局部视野
低地址 ↑ / 高地址 ↓
脚本尚未执行。如果一直显示此句,页面 JavaScript 可能受到限制。
注意:%eax 是本例 int 返回值的 ABI 传递位置。main 中 [rbp-4] 暂称「返回值预留槽」,该名称是对当前编译结果的解释;末尾实际以 xorl %eax,%eax 直接产生返回值 0。动画不会把栈槽画成返回通道。
浏览器禁用了 JavaScript,本动画无法交互。