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?
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.