LLVM中的VM在哪里?

ano*_*non 5 emulation virtual-machine llvm vm-implementation

注意:标记为社区维基.

LLVM中的低级虚拟机在哪里?

我看到我们有llvm-g ++和c-lang,但是对我来说,LLVM几乎就像模拟器的Valgrind,在其上执行指令,我可以编写程序来检测运行代码/中断在某些情况下发生/等......

在LLVM上构建这样的工具在哪里?

谢谢!

Bro*_*ses 5

我想你正在寻找QEMU,而不是LLVM.

LLVM中的低级虚拟机是在将更高级别的C和C++语言输入转换为内部低级表示(作为正常编译过程中的一个阶段)之后,它可以保存此低级表示和在JIT编译器上执行它(因此它的行为有点像虚拟机).这个JIT编译器进行了大量的优化,因此我希望很难以你正在考虑的形式进行检测 - 特别是,它不会逐步执行指令.

相比之下,QEMU是一个开源仿真器,可以逐个指令逐步执行机器代码.它已经包含一定的能力来检测代码以查找某些条件,因为它可以连接到GDB并设置观察点等,这些都是在QEMU本身中实现的.