我正在使用asmjit,但我遇到了一个问题。当生成的jit代码(x64)中调用的函数抛出c ++异常时,即使我在jit函数调用之外执行try-catch也无法捕获它,为什么会这样,我怎样才能捕获异常? / p>
答案 0 :(得分:0)
asmjit的作者PetrKobalíček通过电子邮件回答,非常有帮助:
它在很大程度上取决于您的目标操作系统。 AsmJit没有为异常处理提供任何帮助,因此您需要自己处理异常。
如果您使用的是Windows,可以查看: https://msdn.microsoft.com/en-us/library/1eyas8tf.aspx
此外,检查其他JIT引擎(如V8)可以帮助您了解JITted代码通常如何处理异常。在Windows上,您可以为JIT代码使用的整个虚拟地址空间安装异常处理程序,这样您就不必为每个函数嵌入展开数据。