Watch this:

    $ gdb --args bld/sparc64-softmmu/qemu-system-* -nodefaults -M niagara
    [...]
    (gdb) r
    Starting program: /work/armbru/qemu/bld/sparc64-softmmu/qemu-system-sparc64 
-nodefaults -M niagara
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/lib64/libthread_db.so.1".
    [New Thread 0x7fffce25d700 (LWP 17401)]
    [New Thread 0x7fffcb0c1700 (LWP 17402)]
    Could not open option rom 'nvram1': No such file or directory
    Could not open option rom '1up-md.bin': No such file or directory
    Could not open option rom '1up-hv.bin': No such file or directory
    Could not open option rom 'reset.bin': No such file or directory
    Could not open option rom 'q.bin': No such file or directory
    Could not open option rom 'openboot.bin': No such file or directory

    Thread 1 "qemu-system-spa" received signal SIGSEGV, Segmentation fault.
    qemu_chr_fe_init (b=b@entry=0x5555566bea60, s=0x0, 
        errp=0x555556497e68 <error_abort>) at /work/armbru/qemu/qemu-char.c:897
    897     if (s->is_mux) {
    (gdb) bt
    #0  0x0000555555833500 in qemu_chr_fe_init (b=b@entry=0x5555566bea60, 
s=0x0, errp=0x555556497e68 <error_abort>) at /work/armbru/qemu/qemu-char.c:897
    #1  0x0000555555890a0a in serial_mm_init 
(address_space=address_space@entry=0x55555653dbd0, 
base=base@entry=133412421632, it_shift=it_shift@entry=0, irq=irq@entry=0x0, 
baudbase=baudbase@entry=115200, chr=<optimized out>, end=
        DEVICE_BIG_ENDIAN) at /work/armbru/qemu/hw/char/serial.c:995
    #2  0x00005555558107e2 in niagara_init (machine=0x55555653bf80)
        at /work/armbru/qemu/hw/sparc64/niagara.c:149
    #3  0x00005555557726ea in main (argc=<optimized out>, argv=<optimized out>, 
envp=<optimized out>) at /work/armbru/qemu/vl.c:4544

In other code that's similarly stuck in the pre-qdev world, the call to
serial_mm_init() is conditional on serial_hds[0].

Please also consider qdevification.

Reply via email to