• 27294阅读
  • 1回复

[提问]mingw seh版本和sjlj版本有什么区别呢? [复制链接]

上一主题 下一主题
离线wisage
 

只看楼主 倒序阅读 楼主  发表于: 2013-04-18
mingw seh版本和sjlj版本有什么区别呢?
— 本帖被 XChinux 执行加亮操作(2013-04-26) —
谢谢各位解惑
离线hohos

只看该作者 1楼 发表于: 2013-04-18
SJLJ (setjmp/longjmp):

    available for 32 bit and 64 bit
    not “zero-cost”: even if an exception isn’t thrown, it incurs a minor performance penalty (~15% in exception heavy code) but sometimes the penalty can be more significant: https://bugreports.qt-project.org/browse/QTBUG-29653
    allows exceptions to traverse through e.g. windows callbacks

DWARF (DW2, dwarf-2)

    available for 32 bit only
    no permanent runtime overhead
    needs whole call stack to be dwarf-enabled, which means exceptions cannot be thrown over e.g. Windows system DLLs.

SEH (zero overhead exception)

    will be available for 64-bit GCC 4.8.
    rubenvb release is available [sourceforge.net] targetting Win64/Personal Builds/rubenvb/gcc-4.8-release/x86_64-w64-mingw32-gcc-4.8.0-win64_rubenvb.7z/download
    MinGW-builds release is available [sourceforge.net]


详情见
http://qt-project.org/wiki/MinGW-64-bit
快速回复
限100 字节
 
上一个 下一个