On Thu, Aug 25, 2011 at 7:31 PM, Avi Kivity <a...@redhat.com> wrote: > On 08/25/2011 08:33 PM, Blue Swirl wrote: >> >> (gdb) bt >> #0 0x00007ffff3da2165 in *__GI_raise (sig=<value optimized out>) >> at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 >> #1 0x00007ffff3da4f70 in *__GI_abort () at abort.c:92 >> #2 0x00007ffff3d9b2b1 in *__GI___assert_fail ( >> assertion=0x5c7390 "info->qdev.size>= sizeof(SysBusDevice)", >> file=<value optimized out>, line=0x9c, >> function=0x5c73c0 "sysbus_register_withprop") at assert.c:81 >> #3 0x000000000052e000 in sysbus_register_withprop (info=<value optimized >> out>) >> at /src/qemu/hw/sysbus.c:156 >> #4 0x000000000041d9c3 in module_call_init (type=<value optimized out>) >> at /src/qemu/module.c:78 >> #5 0x0000000000518b64 in main (argc=<value optimized out>, >> argv=<value optimized out>, envp=<value optimized out>) >> at /src/qemu/vl.c:3241 >> (gdb) up 3 >> #3 0x000000000052e000 in sysbus_register_withprop (info=<value optimized >> out>) >> at /src/qemu/hw/sysbus.c:156 >> 156 assert(info->qdev.size>= sizeof(SysBusDevice)); >> (gdb) p *info >> Cannot access memory at address 0x0 >> (gdb) p info >> $1 =<value optimized out> > > -O1 fixes that. > >> (gdb) up >> #4 0x000000000041d9c3 in module_call_init (type=<value optimized out>) >> at /src/qemu/module.c:78 >> 78 e->init(); >> (gdb) p *e >> $2 = {type = MODULE_INIT_BLOCK, >> init = 0x53cf50<sun4c_intctl_register_devices>, node = { >> tqe_next = 0x1051130, tqe_prev = 0x10510b0}} > > static SysBusDeviceInfo sun4c_intctl_info = { > .init = sun4c_intctl_init1, > .qdev.name = "sun4c_intctl", > .qdev.size = sizeof(Sun4c_INTCTLState), > .qdev.vmsd = &vmstate_sun4c_intctl, > .qdev.reset = sun4c_intctl_reset, > }; > > typedef struct Sun4c_INTCTLState { > SysBusDevice busdev; > ... > } > > so the code looks fine. Can you dig deeper? Did something stomp on > qdev.size?
Bah, I run 'make clean', recompiled and the problem disappeared. Sorry for the trouble and noise. Bugs with Makefile dependencies?