2016-11-02 34 views
0

我正在使用asmjit,并且遇到了问题。当C++异常被生成的jit代码(x64)中调用的函数抛出时,即使我尝试捕获jit函数调用之外的函数,也无法捕获它,为什么会这样以及如何捕获异常?在asmjit中无法捕捉异常

+0

请给我们看[mcve]。 –

+0

我建议将问题更改为更通用的问题,例如“如何处理JIT生成的代码中的异常”,因为它与asmjit没有严格关联 - 我的意思是操作系统要求提供与asmjit相关的解决方案,但问题可以首先以更通用的方式回答,然后展示如何使用asmjit完成。 – Petr

回答

0

asmjit的作者彼得·Kobalíček通过电子邮件,非常有帮助的答案:

它在很大程度上取决于你的目标操作系统。 AsmJit不提供任何异常处理的助手,所以你需要自己处理异常。

如果您使用的是Windows,你可以检查出: https://msdn.microsoft.com/en-us/library/1eyas8tf.aspx

此外,检查其他JIT引擎如V8可以帮助你理解代码是如何实时编译通常处理异常。在Windows上,您可以为JIT代码使用的整个虚拟地址空间安装异常处理程序,这样您就不必为每个函数嵌入展开数据。