Я использую asmjit, и я столкнулся с проблемой. Когда исключение c ++ вызывается функцией, вызываемой в сгенерированном коде jit (x64), оно не может быть перехвачено, даже если я делаю try-catch вне вызова функции jit, почему и как я могу перехватить исключение?
Ответ автора asmjit Петра Кобаличека по электронной почте очень полезен:
это сильно зависит от ОС, на которую вы ориентируетесь. AsmJit не предоставляет никаких помощников для обработки исключений, поэтому вам нужно обрабатывать исключения самостоятельно.
Если вы используете Windows, вы можете проверить:
https://msdn.microsoft.com/en-us/library/1eyas8tf.aspx
Кроме того, проверка других механизмов JIT, таких как V8, может помочь вам понять, как JITted-код обычно обрабатывает исключения. В Windows вы можете установить обработчик исключений для всего кода JIT виртуального адресного пространства, таким образом вам не нужно вставлять данные для каждой функции.
Других решений пока нет …