注:コミュニティウィキとしてマークされています。
LLVMの低レベル仮想マシンはどこにありますか?
llvm-g ++とc-langがあるように見えますが、私にとって、LLVMはシミュレーターのValgrindに似ており、命令が実行され、特定の条件で実行中のコード/割り込みを計測するプログラムを作成できます。起こる/など..。
LLVM上に構築されたこのようなツールはどこにありますか?
ありがとう!
注:コミュニティウィキとしてマークされています。
LLVMの低レベル仮想マシンはどこにありますか?
llvm-g ++とc-langがあるように見えますが、私にとって、LLVMはシミュレーターのValgrindに似ており、命令が実行され、特定の条件で実行中のコード/割り込みを計測するプログラムを作成できます。起こる/など..。
LLVM上に構築されたこのようなツールはどこにありますか?
ありがとう!
LLVMではなくQEMUを探していると思います。
LLVMの低レベル仮想マシンは、高レベルのCおよびC ++言語入力を内部の低レベル表現に変換した後(通常のコンパイルプロセスの段階として)、この低レベル表現を保存し、 JITコンパイラで実行します(したがって、仮想マシンのように動作します)。このJITコンパイラはかなりの量の最適化を行うので、あなたが考えているような形でインストルメント化するのは難しいと思います。特に、実行をステップごとに実行することはありません。
対照的に、QEMUは、マシンコードの命令ごとのステップスルーを実行するオープンソースエミュレーターです。QEMU自体に実装されているGDBに接続したり、ウォッチポイントを設定したりできるという点で、特定の条件を探すためにコードをインストルメント化する機能がすでにある程度含まれています。
x86コードの実行にLLVMを使用するには、libCPUまたは古いllvm-qemuを確認する必要があります。
x86プログラムの実行を見てください_on_llvm