team-phoenix / Phoenix

A multi-system emulator and library manager designed to be both powerful and easy to use.
http://phoenix.vg
GNU General Public License v2.0
377 stars 40 forks source link

Phoenix doesn't handle null audio output #99

Closed mogorman closed 9 years ago

mogorman commented 9 years ago
[D] core loaded ?:  true   "/usr/lib/libretro/fceumm_libretro.so"
[D] game loaded ?:  "/home/mog/nintendo/test/contra.nes"
[D] game loaded ?:  true
[New Thread 0x7fffc37fe700 (LWP 3902)]
[D] [phoenix.audio]: afmt is not valid
[D] [phoenix.video]: Loading core: "/usr/lib/libretro/fceumm_libretro.so"
[D] [phoenix.core]: SET_VARIABLES:
[D] [phoenix.core]:      Core::Variable(nes_palette=<not set>, description="Color Palette", choices=[asqrealc, loopy, quor, chris, matt, pasofami, crashman, mess, zaphod-cv, zaphod-smb, vs-drmar, vs-cv, vs-smb, nintendo-vc, raw])
[D]     RETRO_ENVIRONMENT_SET_PIXEL_FORMAT (10) (handled)
[D]     Pixel format: RGB565

[D] [phoenix.core]: Frontend supports RGB565 - will use that instead of XRGB1555.
[D]     RETRO_ENVIRONMENT_SET_PERFORMANCE_LEVEL (8)
[D] [phoenix.video]: Loaded core FCEUmm (SVN)
[D] [phoenix.video]: Loading game: "/home/mog/nintendo/test/contra.nes"
[D]     RETRO_ENVIRONMENT_SET_INPUT_DESCRIPTORS (11) (handled)
[D] [phoenix.core]:     RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY (9)
[D] [phoenix.core]: Loading /home/mog/nintendo/test/contra.nes...

[D] [phoenix.core]:  PRG ROM:    8 x 16KiB
[D] [phoenix.core]:  CHR ROM:    0 x  8KiB
[D] [phoenix.core]:  ROM CRC32:  0xf6035030
[D] [phoenix.core]:  ROM MD5:  0x5a5c2f4f1cafb1f55a8dc0d5ad4550e5
[D] [phoenix.core]:  Mapper #:  2
[D] [phoenix.core]:  Mapper name: UNROM
[D] [phoenix.core]:  Mirroring: Vertical
[D] [phoenix.core]:  Battery-backed: No
[D] [phoenix.core]:  Trained: No
[D] [phoenix.core]: 
[D]     RETRO_ENVIRONMENT_GET_OVERSCAN (2) (handled)
[D] [phoenix.video]: Loaded game at 240x224 @ 60.10fps
[D] [phoenix.audio]: setFormat(32040Hz 16bits)
[D] [phoenix.video]: Core started
[W] using null output device, none available

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffc37fe700 (LWP 3902)]
0x00007ffff50c9b1f in QObject::moveToThread(QThread*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
(gdb) bt
#0  0x00007ffff50c9b1f in QObject::moveToThread(QThread*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#1  0x000000000043445e in Audio::handleFormatChanged() ()
#2  0x00007ffff50c37ba in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007ffff5093de5 in QCoreApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007ffff5093f1b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007ffff5095ee3 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007ffff50eb143 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007ffff12efc5d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007ffff12eff48 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9  0x00007ffff12efffc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007ffff50eb54c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#11 0x00007ffff5091752 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#12 0x00007ffff4e56284 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#13 0x00007ffff4e5b0de in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#14 0x00007ffff490f0a4 in start_thread (arg=0x7fffc37fe700) at pthread_create.c:309
#15 0x00007ffff3e2204d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
(gdb) bt full
#0  0x00007ffff50c9b1f in QObject::moveToThread(QThread*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#1  0x000000000043445e in Audio::handleFormatChanged() ()
No symbol table info available.
#2  0x00007ffff50c37ba in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#3  0x00007ffff5093de5 in QCoreApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#4  0x00007ffff5093f1b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#5  0x00007ffff5095ee3 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#6  0x00007ffff50eb143 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#7  0x00007ffff12efc5d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#8  0x00007ffff12eff48 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#9  0x00007ffff12efffc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#10 0x00007ffff50eb54c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#11 0x00007ffff5091752 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#12 0x00007ffff4e56284 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#13 0x00007ffff4e5b0de in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#14 0x00007ffff490f0a4 in start_thread (arg=0x7fffc37fe700) at pthread_create.c:309
        __res = <optimized out>
        pd = 0x7fffc37fe700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736473327360, -5653430561682842501, 1, 13936016, 24, 140736473327360, 5653561404587678843, 5653446874251959419}, mask_was_saved = 0}}, priv = {pad = {
              0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
        pagesize_m1 = <optimized out>
        sp = <optimized out>
        freesize = <optimized out>
        __PRETTY_FUNCTION__ = "start_thread"
#15 0x00007ffff3e2204d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
No locals.
mogorman commented 9 years ago

also happened with snes9x core

athairus commented 9 years ago

Hi, sorry this took so long to get looked at. Thanks for including all this debug info!

This is the key line: [W] using null output device, none available

There doesn't seem to be any audio output device available. Our code, unable to handle the situation, crashes. When this happened, did you have any kind of audio working on your computer?

athairus commented 9 years ago

The entire frontend and backend have been rewritten. If this problem happens again, feel free to make a new issue. Closed!