kukugt / mupen64plus

Automatically exported from code.google.com/p/mupen64plus
0 stars 0 forks source link

Mupen crash after clicking the "Full Screen" button #151

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Describe your system:
 - Linux distribution: fc9
 - Machine type: 64-bit
 - Mupen64Plus version: 1.4-trunk-r1065
 - Plugins used:[blight's SDL input plugin], [glN64], [JttL's SDL Audio plugin]
 - GUI=QT4

Describe the problem:
I first start any game and the hit "ESC" to exit the game. After that I hit
the "Full Screen" button in the GUI, and viola... crash.

Please provide any additional information below.
$ gdb /usr/local/bin/mupen64plus 
GNU gdb Fedora (6.8-21.fc9)                      
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.           
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"   
and "show warranty" for details.                                             
This GDB was configured as "x86_64-redhat-linux-gnu"...                      
(gdb) run                                                                    
Starting program: /usr/local/bin/mupen64plus                                 
[Thread debugging using libthread_db enabled]                                
 __  __                         __   _  _   ____  _                          
|  \/  |_   _ _ __   ___ _ __  / /_ | || | |  _ \| |_   _ ___                
| |\/| | | | | '_ \ / _ \ '_ \| '_ \| || |_| |_) | | | | / __|               
| |  | | |_| | |_) |  __/ | | | (_) |__   _|  __/| | |_| \__ \               
|_|  |_|\__,_| .__/ \___|_| |_|\___/   |_| |_|   |_|\__,_|___/               
             |_|         http://code.google.com/p/mupen64plus/               
Version 1.4-trunk-r1065                                                      

[New Thread 0x14adb0 (LWP 3987)]
Config Dir:  /home/olejl/.mupen64plus/
Install Dir: /usr/local/share/mupen64plus/
Plugin Dir:  /usr/local/share/mupen64plus/plugins/

[New Thread 0x416b0950 (LWP 3990)]
Rescanning rom cache.             
Scanning... /usr/emulators/n64/roms/
Rom cache up to date. 23 ROMs.      
Compression: Zip                    
Imagetype: .z64 (native)            
Rom size: 33554432 bytes (or 32 Mb or 256 Megabits)
MD5: 13FAB67E603B002CEAF0EEA84130E973              
80 37 12 40                                        
ClockRate = f                                      
Version: 144b                                      
CRC: e97955c6 bc338d38                             
Name: ZELDA MAJORA'S MASK                          
Manufacturer: Nintendo                             
Cartridge_ID: 535a                                 
Country: Europe (0x50)                             
PC = 80080000                                      
EEPROM type: 0                                     
init timer!                                        
[New Thread 0x420b1950 (LWP 3991)]                 
memory initialized                                 
[blight's SDL input plugin]: version 0.0.10 initialized.
[glN64]: (II) Initializing SDL video subsystem...       
[glN64]: (II) Getting video info...                     
[glN64]: (II) Setting video mode 800x600...             
[JttL's SDL Audio plugin] version 1.4-trunk/jttl_audio-r1065  initalizing.
[JttL's SDL Audio plugin] Initializing SDL audio subsystem...             
[New Thread 0x42ab2950 (LWP 3992)]                                        
[JttL's SDL Audio plugin] Allocating memory for audio buffer: 65536 bytes.
[New Thread 0x434b3950 (LWP 3993)]                                        
[blight's SDL input plugin]: Couldn't open joystick for controller #0:
There are 0 joysticks available
Starting r4300 emulator                                                   

R4300 Core mode: Dynamic Recompiler                                       

R4300 core: starting 64-bit dynamic recompiler at: 0x43151d0.             

[Thread 0x434b3950 (LWP 3993) exited]                                     

[New Thread 0x434b3950 (LWP 3994)]                                        

[Thread 0x434b3950 (LWP 3994) exited]                                     

[New Thread 0x434b3950 (LWP 3995)]                                        

R4300 core finished.                                                      

[JttL's SDL Audio plugin] Cleaning up SDL sound plugin...                 

[Thread 0x434b3950 (LWP 3995) exited]                                     

[Thread 0x42ab2950 (LWP 3992) exited]                                     

[blight's SDL input plugin]: Closing...                                   

[Thread 0x420b1950 (LWP 3991) exited]                                     

Program received signal SIGSEGV, Segmentation fault.
0x0000003a75e2ed65 in SDL_WM_ToggleFullScreen () from
/usr/lib64/libSDL-1.2.so.0
Missing separate debuginfos, use: debuginfo-install OpenEXR.x86_64
SDL.x86_64 SDL_ttf.x86_64 alsa-lib.x86_64 atk.x86_64 audiofile.x86_64
bzip2.x86_64 cairo.x86_64 dbus.x86_64 e2fsprogs.x86_64 esound.x86_64
expat.x86_64 fontconfig.x86_64 freetype.x86_64 gcc.x86_64 glib2.x86_64
glibc.x86_64 gtk2.x86_64 ilmbase.x86_64 jasper.x86_64
kdebase-runtime.x86_64 kdelibs.x86_64 keyutils.x86_64 krb5.x86_64
lcms.x86_64 libICE.x86_64 libSM.x86_64 libX11.x86_64 libXau.x86_64
libXcomposite.x86_64 libXcursor.x86_64 libXdmcp.x86_64 libXext.x86_64
libXfixes.x86_64 libXft.x86_64 libXi.x86_64 libXinerama.x86_64
libXpm.x86_64 libXrandr.x86_64 libXrender.x86_64 libXtst.x86_64
libcap.x86_64 libjpeg.x86_64 libmng.x86_64 libpng.x86_64 libselinux.x86_64
libtiff.x86_64 libxcb.x86_64 mesa.x86_64 openssl.x86_64 pango.x86_64
pixman.x86_64 qt.x86_64 zlib.x86_64                                       

(gdb) bt                                                                  

#0  0x0000003a75e2ed65 in SDL_WM_ToggleFullScreen () from
/usr/lib64/libSDL-1.2.so.0
#1  0x00000000004c5298 in MainWindow::qt_metacall (this=0x3bcd9a0,
_c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff019b7380)
    at moc_mainwindow.cpp:105
#2  0x0000003b90d57194 in QMetaObject::activate () from
/usr/lib64/libQtCore.so.4
#3  0x0000003b9217a5a2 in QAction::toggled () from /usr/lib64/libQtGui.so.4
#4  0x0000003b9217ac4a in QAction::setChecked () from /usr/lib64/libQtGui.so.4
#5  0x0000003b9217ad12 in QAction::activate () from /usr/lib64/libQtGui.so.4
#6  0x0000003b9248d19a in ?? () from /usr/lib64/libQtGui.so.4
#7  0x0000003b9248d435 in QAbstractButton::mouseReleaseEvent () from
/usr/lib64/libQtGui.so.4
#8  0x0000003b92554a5a in QToolButton::mouseReleaseEvent () from
/usr/lib64/libQtGui.so.4
#9  0x0000003b921d27cf in QWidget::event () from /usr/lib64/libQtGui.so.4
#10 0x0000003b9218021d in QApplicationPrivate::notify_helper () from
/usr/lib64/libQtGui.so.4
#11 0x0000003b9218883a in QApplication::notify () from /usr/lib64/libQtGui.so.4
#12 0x0000003b90d42d51 in QCoreApplication::notifyInternal () from
/usr/lib64/libQtCore.so.4
#13 0x0000003b92187bd8 in QApplicationPrivate::sendMouseEvent () from
/usr/lib64/libQtGui.so.4
#14 0x0000003b921ec139 in ?? () from /usr/lib64/libQtGui.so.4
#15 0x0000003b921eab27 in QApplication::x11ProcessEvent () from
/usr/lib64/libQtGui.so.4
#16 0x0000003b9221129c in ?? () from /usr/lib64/libQtGui.so.4
#17 0x0000003a692374db in g_main_context_dispatch () from
/lib64/libglib-2.0.so.0
#18 0x0000003a6923acbd in ?? () from /lib64/libglib-2.0.so.0
#19 0x0000003a6923ae7b in g_main_context_iteration () from
/lib64/libglib-2.0.so.0
#20 0x0000003b90d6b24f in QEventDispatcherGlib::processEvents () from
/usr/lib64/libQtCore.so.4
#21 0x0000003b92210a0f in ?? () from /usr/lib64/libQtGui.so.4
#22 0x0000003b90d41662 in QEventLoop::processEvents () from
/usr/lib64/libQtCore.so.4
#23 0x0000003b90d417ed in QEventLoop::exec () from /usr/lib64/libQtCore.so.4
#24 0x0000003b90d43cbd in QCoreApplication::exec () from
/usr/lib64/libQtCore.so.4
#25 0x00000000004b1fd9 in gui_main_loop () at main.cpp:89
#26 0x0000000000427511 in main (argc=1, argv=0x7fff019bcac8) at
main/main.c:1542

Original issue reported on code.google.com by olejorge...@gmail.com on 21 Sep 2008 at 5:45

GoogleCodeExporter commented 8 years ago
Easy fix. The Qt4 GUI doesn't check if(g_EmulatorRunning) before calling the 
changeWindow() - the toggle fullscreen function. 

Changing void MainWindow::fullScreenToggle()
to this:
{
    if(core::g_EmulatorRunning)
        core::changeWindow();
}

will solve it. However, putting the check in the core as opposed to leaving it 
up 
to Gtk and Qt4 GUI is a better long-term fix. 

Original comment by sknau...@wesleyan.edu on 1 Oct 2008 at 7:49

GoogleCodeExporter commented 8 years ago
New GUI API should prevent function from being called unless rom is running, 
closing issue.

Original comment by sknau...@wesleyan.edu on 11 Oct 2008 at 10:52