mingw64安装 exception的三个选项 dwarf sjlj seh
在C++中有 try..throw..catch,当它执行这种结构时,它需要保存现场还原现场,而 sjlj, seh, dwarf 正是实现这类过程的三种方式。sjlj 全称是 SetJump LongJump,前者设还原点,后者
在C++中有 try..throw..catch,当它执行这种结构时,它需要保存现场还原现场,而 sjlj, seh, dwarf 正是实现这类过程的三种方式。
sjlj 全称是 SetJump LongJump,前者设还原点,后者跳到还原点。
seh 是 Borland 公司的,微软买了其专利使用权,它利用了FS段寄存器,将还原点压入,收到异常时弹出。
相较而言,sjlj 是 C 标准库就有的东西,seh 在 2014 年前是有专利的,从性能上说 seh 比 sjlj 快。
dwarf 我是在开源平台 MinGW 见到这名称,因为专利原因 MinGW 以前并不支持 seh,也许是为了保证性能,它又提供了 dwarf 这种方式。
作者:三眼卡夫卡a
链接:https://www.jianshu.com/p/fd939d30ec97
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
本文为转载文章,版权归原作者所有,不代表本站立场和观点。