A generic and open source machine emulator and virtualizer
いろんなCPUアーキテクチャに対応しているエミュレータ
QEMU Monitor
メモリを覗いたりできる
https://qemu-project.gitlab.io/qemu/system/monitor.html
https://wiki.osdev.org/QEMU_Monitor
- info registers → レジスタを覗く
- (print|p) expr → exprの評価?
p 0xf0+10で 0xfa が出力される - x/fmt addr → 仮想メモリを覗く
- xp/fmt addr → 物理メモリを覗く
GDBをアタッチしたほうが良いという説もある
fmt
count (数字) + format + size からなる
format: x (hex), d (signed decimal), u (unsigned decimal), o (octal), c (char), i (asm instruction)
size: b (8 bits), h (16 bits), w (32 bits), g (64 bits)
たとえば0x10から0x18までの6バイトを8bit単位・16進数で見たかったら x /8xb 0x10
(qemu) x /8xb 0x10
0000000000000010: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
ショートカット
-nographic オプションを渡して起動しているとき、 Ctrl+A を押してから何らかのキーを入れると、諸々の操作が出来る
https://www.qemu.org/docs/master/system/mux-chardev.html
- Ctrl+A x → 終了
- Ctrl+A c → OSと Qemu Monitor の切り替え