Я думаю, что вы ищете QEMU, а не LLVM.
Виртуальная машина низкого уровня в LLVM заключается в том, что после преобразования входных данных языка C и C ++ более высокого уровня во внутреннее низкоуровневое представление (как этап в обычном процессе компиляции) она может сохранить этот низкоуровневый файл. представление уровня и выполнение его на JIT-компиляторе (который, таким образом, действует как виртуальная машина). Этот JIT-компилятор выполняет значительную часть оптимизации, и поэтому я ожидаю, что будет трудно использовать инструмент в той форме, о которой вы думаете - в частности, он не выполняет пошаговые инструкции при выполнении.
QEMU, напротив, является эмулятором с открытым исходным кодом, который выполняет пошаговые инструкции машинного кода. Он уже содержит определенную способность кода инструмента искать определенные условия, поскольку он может подключаться к GDB и устанавливать точки наблюдения и т. Д., Которые реализованы в самом QEMU.