2016-11-02 8 views
0

私はasmjitを使用していますが、問題が発生しました。生成されたジットコード(x64)で呼び出された関数によってC++例外がスローされると、jit関数呼び出しの外側でtry-catchを実行してもキャッチできません。なぜそうであり、どのように例外をキャッチできますか?電子メールを介してasmjitで例外をキャッチできません

+0

[mcve]を表示してください。 –

+0

asmjitに厳密に関連していないので、より一般的な質問に変更することをお勧めします。asmjitに関連する解決策を求めていますが、より汎用的な方法でまず答えることができ、次にasmjitでどのように実行できるかを示しました。 – Petr

答えて

0

asmjitの作者ペトルKobalíčekの答えは、非常に有用:

それは非常にあなたがターゲットとしているOSに依存します。 AsmJitは例外処理のためのヘルパーを提供していないので、あなた自身で例外を処理する必要があります。

は、Windows上にある場合は、チェックアウトすることができます: https://msdn.microsoft.com/en-us/library/1eyas8tf.aspx

をまた、V8のような他のJITエンジンは、あなたが通常の例外を処理する方法にJITコンパイルされたコードを理解するのに役立ちますチェック。 Windowsでは、JITコードが使用する仮想アドレス空間全体の例外ハンドラをインストールすることができます。この方法で、各関数のunwindデータを埋め込む必要はありません。

関連する問題