Next: pcsys_os_specific, Previous: vnc_security, Up: QEMU PC System emulator
QEMU has a primitive support to work with gdb, so that you can do 'Ctrl-C' while the virtual machine is running and inspect its state.
In order to use gdb, launch qemu with the '-s' option. It will wait for a gdb connection:
> qemu -s -kernel arch/i386/boot/bzImage -hda root-2.4.20.img \ -append "root=/dev/hda" Connected to host network interface: tun0 Waiting gdb connection on port 1234
Then launch gdb on the 'vmlinux' executable:
> gdb vmlinux
In gdb, connect to QEMU:
(gdb) target remote localhost:1234
Then you can use gdb normally. For example, type 'c' to launch the kernel:
(gdb) c
Here are some useful tips in order to use gdb on system code:
info reg
to display all the CPU registers.
x/10i $eip
to display the code at the PC position.
set architecture i8086
to dump 16 bit code. Then use
x/10i $cs*16+$eip
to dump the code at the PC position.