On 5/14/10, Jan Kiszka <jan.kis...@siemens.com> wrote: > While recently fixing the SCSI reset issues, I once again had the need > for displaying the state of involved devices. So far the common approach > is to attach gdb to qemu (or even inject some printf). But that time I > hacked up a 30-minute patch to dump the vmstate of any (fully converted) > qdev device. > > This series now lays the ground for more sophisticated visulization. It > adds the monitor command 'device_show <qdev-path>', freezes the vmstate > of the addressed device, sticks it into a QMP dict, and either transmit > this via QMP or pretty-prints it on a monitor console. Some example: > > (qemu) device_show /i440FX-pcihost/pci.0/piix3-usb-uhci > dev: piix3-usb-uhci, id "" > dev. > version_id: 00000002 > config: a0 7d d1 00 00 00 00 00 - b0 7e d1 00 00 00 00 00 > ... > irq_state: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 > num_ports_vmstate: 02 > ports[00]. > ctrl: 0083 > ports[01]. > ctrl: 0080 > cmd: 00c1 > status: 0000 > intr: 0000 > frnum: 0077 > fl_base_addr: 0fffc000 > sof_timing: 40 > status2: 00 > frame_timer: 0000000000cb2bd0 > > Basically, this is the level of support I recently saw in a > demonstration of some commercial simulator as well. We are just lacking > support for the yet unconverted devices. And I think we can even do > better on the long term, e.g. by annotating state variables that contain > flags, or by pretty-printing buffers like the PCI config space, or... > > Let's give this a start, I bet it will be helpful while adding complex > device models like AHCI or EHCI. Looking forward to feedback!
Nice! I think this confirms that there is no future for the qdev side of my yesterday's patch, this is much better.