注意:标记为社区维基。
LLVM中的低级虚拟机在哪里?
我看到我们有llvm-g ++和c-lang,但对我来说,LLVM几乎就像模拟器的Valgrind,在其上执行指令,我可以编写程序来检测正在运行的代码/中断当某些条件发生时/等......
在LLVM上构建这样的工具在哪里?
谢谢!
答案 0 :(得分:5)
我认为你在寻找QEMU,而不是LLVM。
LLVM中的低级虚拟机是在将更高级别的C和C ++语言输入转换为内部低级表示(作为正常编译过程中的一个阶段)之后,它可以将此保存为低 - 级别表示并在JIT编译器上执行它(因此它的行为有点像虚拟机)。这个JIT编译器进行了大量的优化,因此我希望很难以你正在考虑的形式进行检测 - 特别是,它不会逐步执行指令。< / p> 相比之下,QEMU是一个开源仿真器,可以逐个指令逐步执行机器代码。它已经包含了一定的能力来检测代码以查找某些条件,因为它可以连接到GDB并设置观察点等,这些都是在QEMU本身中实现的。
答案 1 :(得分:1)
要使用LLVM运行x86代码,您应该检查libCPU或过时的llvm-qemu。