Domanda

Nota:. Contrassegnato come wiki comunità

Dove è la Virtual Machine basso livello LLVM?

I vedere che abbiamo LLVM-g ++ e C-lang, ma per me, un LLVM è qualcosa di quasi come Valgrind di un simulatore, in cui le istruzioni vengono eseguite su di esso, e posso scrivere programmi per strumento la esecuzione di codice / interrupt quando determinate condizioni si verificano / etc ...

Dove sono gli strumenti di questo tipo costruita su LLVM?

Grazie!

È stato utile?

Soluzione

Credo che siete in cerca di QEMU, non LLVM.

La macchina virtuale a basso livello in LLVM è che, dopo la conversione di livello superiore C e C ++ ingresso linguaggio in una rappresentazione di basso livello interna (come una fase del normale processo di compilazione), può quindi salvare il basso rappresentazione livello ed eseguirlo su un compilatore JIT (che funge quindi piuttosto come una macchina virtuale). Questo compilatore JIT fa una notevole quantità di ottimizzazione, e quindi mi aspetto che sarebbe stato difficile strumento proprio la forma che si sta pensando di -. In particolare, non fa l'istruzione-by-istruzioni passo attraverso l'esecuzione

QEMU, invece, è un emulatore open-source che fa istruzione per operazione passando attraverso di codice macchina. Esso contiene già una certa quantità di capacità di codice strumento per cercare determinate condizioni, nel senso che può connettersi a GDB e watchpoints set e così via, che sono attuate in QEMU per sé.

Altri suggerimenti

Per usare LLVM per l'esecuzione di codice x86 si dovrebbe verificare libCPU o non aggiornate LLVM-QEMU.

esecuzione del programma X 86 _on_ LLVM

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top