void long(jmp_buf envbuf, int iRet)
  • 含义:
    • 从 envbuf 中恢复调用环境,并触发 setjmp 返回
    • 返回数值 iRet
  • 在 setjmp 之后被调用
  • 被调用一次,从不返回
  • longjmp 的执行
    • 从 envbuf 中恢复寄存器内容(栈指针、基址指针、程序计数器)
    • 返回值 i 在 %eax 中
    • 跳转至保存在 envbuf 中的 PC 所指示的位置