0

JITを使用して正常に機能するいくつかの例外処理があります。現在、オブジェクト ファイルを作成してリンクしていますが、例外処理テーブルがないようです。私は呼び出し、結果として_Unwind_RaiseException取得 します。_URC_END_OF_STACK

を使用してオブジェクト ファイルを生成しTargetMachine::addPassesToEmitFile、結果のファイルを次のようにリンクします。

gcc -Wl,--eh-frame-hdr -o prog input.o

ドワーフ テーブルを生成するためのオプションが欠落しているだけだと確信していますが、それが何であるかはわかりません。JITExceptionHandling私が設定したJITバージョンについては JITEmitDebugInfoTargetOptions.

各ステップを確認するために、LL (LLVM-IR) ファイルも出力しました。これにはランディングパッド/呼び出し命令があることを確認しました。次に、ツールを使用してllcから GCC を使用してリンクします。この組み合わせも、望ましい結果を生み出しません。

これを正しく行うために欠落しているオプションはどれですか?

4

1 に答える 1