Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检测C+中异常处理的实现类型+; C++标准定义了异常如何从用户的角度来表现,而留给编译器的开发者如何实现。在野外发现了各种类型:矮星型、SJLJ型、安腾型、SEH型。。。除了MinGW和MinGW-w64之外,开发人员并不总是很好地记录使用哪一种工具,因为对于不同的EH类型,有一个专用的可下载工具链_C++_Gcc_Visual C++_Mingw_Mingw W64 - Fatal编程技术网

检测C+中异常处理的实现类型+; C++标准定义了异常如何从用户的角度来表现,而留给编译器的开发者如何实现。在野外发现了各种类型:矮星型、SJLJ型、安腾型、SEH型。。。除了MinGW和MinGW-w64之外,开发人员并不总是很好地记录使用哪一种工具,因为对于不同的EH类型,有一个专用的可下载工具链

检测C+中异常处理的实现类型+; C++标准定义了异常如何从用户的角度来表现,而留给编译器的开发者如何实现。在野外发现了各种类型:矮星型、SJLJ型、安腾型、SEH型。。。除了MinGW和MinGW-w64之外,开发人员并不总是很好地记录使用哪一种工具,因为对于不同的EH类型,有一个专用的可下载工具链,c++,gcc,visual-c++,mingw,mingw-w64,C++,Gcc,Visual C++,Mingw,Mingw W64,问题是:在运行时或构建时检测底层EH实现的可能性是什么?我想,用相关的工具链编译一个测试样本,并检查生成的程序集。问题是:你为什么在乎?根据答案,您会有什么不同的做法?答案不是吗?例如,使用常用的实现标识宏并查阅它们的文档?@davishering文档可能是一个信息源,但往往没有帮助。例如,LLVM文档是受支持的,但在项目页面上可用的二进制文件中未激活。qtsdk安装程序可以自动安装MinGW-w64,但不提供有关已安装的flavor的任何详细信息。MinGW-w64项目提供SEH和SJLJ,Q

问题是:在运行时或构建时检测底层EH实现的可能性是什么?

我想,用相关的工具链编译一个测试样本,并检查生成的程序集。问题是:你为什么在乎?根据答案,您会有什么不同的做法?答案不是吗?例如,使用常用的实现标识宏并查阅它们的文档?@davishering文档可能是一个信息源,但往往没有帮助。例如,LLVM文档是受支持的,但在项目页面上可用的二进制文件中未激活。qtsdk安装程序可以自动安装MinGW-w64,但不提供有关已安装的flavor的任何详细信息。MinGW-w64项目提供SEH和SJLJ,Qt实际上提供SEH,但没有明确的文档记录。Qt似乎还提供了一个MinGW 32位SEH。@IgorTandetnik我正在调查一个项目从MinGW-w64 SJLJ迁移到SEH的过程,因为前者存在一个bug,并试图找出标准和/或推荐的内容。在这种情况下,其他编译器正在使用的内容会有所帮助。由于文档常常没有帮助,我试图找到一种“技术”方法来找到答案。反汇编当然是一种选择,但我希望有更简单的方法,比如在little和big-endian之间进行检查,这可以在程序本身内完成。我想,用相关的工具链编译一个测试样本,并检查生成的程序集。问题是:你为什么在乎?根据答案,您会有什么不同的做法?答案不是吗?例如,使用常用的实现标识宏并查阅它们的文档?@davishering文档可能是一个信息源,但往往没有帮助。例如,LLVM文档是受支持的,但在项目页面上可用的二进制文件中未激活。qtsdk安装程序可以自动安装MinGW-w64,但不提供有关已安装的flavor的任何详细信息。MinGW-w64项目提供SEH和SJLJ,Qt实际上提供SEH,但没有明确的文档记录。Qt似乎还提供了一个MinGW 32位SEH。@IgorTandetnik我正在调查一个项目从MinGW-w64 SJLJ迁移到SEH的过程,因为前者存在一个bug,并试图找出标准和/或推荐的内容。在这种情况下,其他编译器正在使用的内容会有所帮助。由于文档常常没有帮助,我试图找到一种“技术”方法来找到答案。反汇编当然是一种选择,但我希望有更简单的方法,比如在little和big endian之间进行检查,这可以在程序本身中完成。