On 5 October 2015 at 18:11, Markus Armbruster <arm...@redhat.com> wrote: > Sigh. I'll stare at the original backtrace some more.
Here's one from a debug build (with some reasoning about the cause underneath it). As an aside, thanks to your valgrind example I figured out how to get the test makefile to run tests under gdb: QTEST_QEMU_BINARY="xterm -e gdb --tty $(tty) --args aarch64-softmmu/qemu-system-aarch64" QTEST_QEMU_IMG=qemu-img gtester -k --verbose -m=quick tests/device-introspect-test (which will start a new xterm with a gdb in it for debugging each test). #0 0x00007fff9145e286 in __pthread_kill () #1 0x00007fff912529f9 in pthread_kill () #2 0x00007fff956db9b3 in abort () #3 0x000000010103ec50 in g_assertion_message () #4 0x000000010103ec95 in g_assertion_message_expr () #5 0x000000010045bbb2 in object_initialize_with_type (data=0x102056520, size=344, type=0x0) at /Users/pm215/src/qemu-for-merges/qom/object.c:333 #6 0x000000010045c112 in object_initialize (data=0x102056520, size=344, typename=0x1005a7a96 "virtio-tablet-device") at /Users/pm215/src/qemu-for-merges/qom/object.c:352 #7 0x00000001000e7d74 in virtio_instance_init_common (proxy_obj=0x10204e400, data=0x102056520, vdev_size=344, vdev_name=0x1005a7a96 "virtio-tablet-device") at /Users/pm215/src/qemu-for-merges/hw/virtio/virtio.c:1468 #8 0x00000001003efe47 in virtio_tablet_initfn (obj=0x10204e400) at /Users/pm215/src/qemu-for-merges/hw/virtio/virtio-pci.c:2133 #9 0x000000010045c066 in object_init_with_type (obj=0x10204e400, ti=0x10154f420) at /Users/pm215/src/qemu-for-merges/qom/object.c:314 #10 0x000000010045bcf2 in object_initialize_with_type (data=0x10204e400, size=33400, type=0x10154f420) at /Users/pm215/src/qemu-for-merges/qom/object.c:344 #11 0x000000010045c2a9 in object_new_with_type (type=0x10154f420) at /Users/pm215/src/qemu-for-merges/qom/object.c:430 #12 0x000000010045c2f2 in object_new (typename=0x101585cc0 "virtio-tablet-pci") at /Users/pm215/src/qemu-for-merges/qom/object.c:440 #13 0x000000010021923f in qmp_device_list_properties (typename=0x101585cc0 "virtio-tablet-pci", errp=0x7fff5fbfd850) at /Users/pm215/src/qemu-for-merges/qmp.c:529 #14 0x000000010020e054 in qmp_marshal_device_list_properties (args=0x102023200, ret=0x7fff5fbfd8c8, errp=0x7fff5fbfd8d0) at qmp-marshal.c:1693 #15 0x0000000100047fe1 in handle_qmp_command (parser=0x10157f388, tokens=0x1013069a0) at /Users/pm215/src/qemu-for-merges/monitor.c:3860 #16 0x000000010052fb16 in json_message_process_token (lexer=0x10157f390, token=0x101585b40, type=JSON_OPERATOR, x=15754, y=0) at /Users/pm215/src/qemu-for-merges/qobject/json-streamer.c:87 #17 0x000000010052f45a in json_lexer_feed_char (lexer=0x10157f390, ch=125 '}', flush=false) at /Users/pm215/src/qemu-for-merges/qobject/json-lexer.c:303 #18 0x000000010052f2e1 in json_lexer_feed (lexer=0x10157f390, buffer=0x7fff5fbfdb00 "}6\035�q&", size=1) at /Users/pm215/src/qemu-for-merges/qobject/json-lexer.c:356 #19 0x000000010052fbc7 in json_message_parser_feed (parser=0x10157f388, buffer=0x7fff5fbfdb00 "}6\035�q&", size=1) at /Users/pm215/src/qemu-for-merges/qobject/json-streamer.c:110 #20 0x0000000100047ce6 in monitor_qmp_read (opaque=0x10157f310, buf=0x7fff5fbfdb00 "}6\035�q&", size=1) at /Users/pm215/src/qemu-for-merges/monitor.c:3875 #21 0x00000001001f06d7 in qemu_chr_be_write (s=0x10157e310, buf=0x7fff5fbfdb00 "}6\035�q&", len=1) at /Users/pm215/src/qemu-for-merges/qemu-char.c:305 #22 0x00000001001f661a in tcp_chr_read (chan=0x10157e5a0, cond=G_IO_IN, opaque=0x10157e310) at /Users/pm215/src/qemu-for-merges/qemu-char.c:2873 #23 0x000000010101f0bd in g_main_context_dispatch () #24 0x0000000100473aaa in glib_pollfds_poll () at /Users/pm215/src/qemu-for-merges/main-loop.c:211 #25 0x000000010047371b in os_host_main_loop_wait (timeout=0) at /Users/pm215/src/qemu-for-merges/main-loop.c:256 #26 0x000000010047358d in main_loop_wait (nonblocking=1) at /Users/pm215/src/qemu-for-merges/main-loop.c:504 #27 0x000000010020715c in main_loop () at /Users/pm215/src/qemu-for-merges/vl.c:1880 #28 0x00000001002015bc in qemu_main (argc=14, argv=0x7fff5fbff5c0, envp=0x7fff5fbff638) at /Users/pm215/src/qemu-for-merges/vl.c:4634 #29 0x0000000100435c73 in main (argc=14, argv=0x7fff5fbff5c0) at /Users/pm215/src/qemu-for-merges/ui/cocoa.m:1164 I think the problem here is that the "virtio-tablet-pci" device is in hw/virtio/virtio-pci.c, which gets built for all hosts, but it uses the device "virtio-tablet-device", which is defined in hw/input/virtio-input-hid.c, which is only built if CONFIG_LINUX is defined. So on non-Linux hosts we get a virtio-tablet-pci device which can't be created. The easy fix is to have some suitable ifdeffery in virtio-pci.c, similar to how we only register the virtio_9p_pci and virtio_scsi_pci types if they've been configured into this build. thanks -- PMM