IRを生成するLLVMをターゲットとするフロントエンドを構築しました。その後、完全に予想通り、IR 出力が正しくない場合があります (正しいように見えても、結果のプログラムを実行するとクラッシュするなど)。ただし、これに対処するための便利なツールはあまり見つかりませんでした。
lli を使用してみましたが、エラー メッセージの出力は驚くほど役に立ちません (インタープリターが非常に正確なエラーの詳細を提供できると想定する場合)。
IR を C コードに変換し、それを Visual Studio でデバッグすることを検討しましたが、この機能は LLVM から削除されたようです。
GDBの扱いも調べました。ただし、DWARF デバッグ情報の形式は、いくつかの既存の言語にかなり固有のようです。さらに、フロントエンドで翻訳しているソースは正しく、間違っているのは生成された IR であるため、元のソースのデバッグ シンボルはたとえば、どのソース変数にも対応しない一連の中間レジスタ値の値、またはコンパイラによって生成された関数のブレークポイントを確認する必要があります。
LLVM IR 出力をデバッグするためのツールとテクニックは何ですか?