Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7ffff2f5d950 (LWP 4390)] 0x00000037faa2e1d7 in ?? () (gdb) thread apply all bt
Thread 14 (Thread 0x7fffee138950 (LWP 4402)): #0 0x00000037f3e0e851 in nanosleep () from /lib64/libpthread.so.0 #1 0x00000037ff05a4d4 in SDL_Delay () from /usr/lib64/libSDL-1.2.so.0 #2 0x000000000046a88f in SDL_EnableUNICODE () #3 0x00000000004b08db in SDL_EnableUNICODE () #4 0x00000037ff011017 in ?? () from /usr/lib64/libSDL-1.2.so.0 #5 0x00000037ff056fc9 in ?? () from /usr/lib64/libSDL-1.2.so.0 #6 0x00000037f3e073da in start_thread () from /lib64/libpthread.so.0 #7 0x00000037f32e62bd in clone () from /lib64/libc.so.6
Thread 7 (Thread 0x7fffecd36950 (LWP 4395)): #0 0x00000037f3e0e851 in nanosleep () from /lib64/libpthread.so.0 #1 0x00000037ff05a4d4 in SDL_Delay () from /usr/lib64/libSDL-1.2.so.0 #2 0x00000000004a630c in SDL_EnableUNICODE () #3 0x00000000004b08db in SDL_EnableUNICODE () #4 0x00000037ff011017 in ?? () from /usr/lib64/libSDL-1.2.so.0 #5 0x00000037ff056fc9 in ?? () from /usr/lib64/libSDL-1.2.so.0 #6 0x00000037f3e073da in start_thread () from /lib64/libpthread.so.0 #7 0x00000037f32e62bd in clone () from /lib64/libc.so.6
Thread 6 (Thread 0x7fffed737950 (LWP 4394)): #0 0x00000037f32dc886 in poll () from /lib64/libc.so.6 #1 0x0000003803852f96 in ?? () from /lib64/libasound.so.2 #2 0x0000003803853357 in ?? () from /lib64/libasound.so.2 ---Type <return> to continue, or q <return> to quit--- #3 0x000000380385ea6a in snd_pcm_mmap_writei () from /lib64/libasound.so.2 #4 0x00000037ff036afd in ?? () from /usr/lib64/libSDL-1.2.so.0 #5 0x00000037ff0096de in ?? () from /usr/lib64/libSDL-1.2.so.0 #6 0x00000037ff011017 in ?? () from /usr/lib64/libSDL-1.2.so.0 #7 0x00000037ff056fc9 in ?? () from /usr/lib64/libSDL-1.2.so.0 #8 0x00000037f3e073da in start_thread () from /lib64/libpthread.so.0 #9 0x00000037f32e62bd in clone () from /lib64/libc.so.6
Thread 2 (Thread 0x7ffff2f5d950 (LWP 4390)): #0 0x00000037faa2e1d7 in ?? () #1 0x00000037f3e07479 in start_thread () from /lib64/libpthread.so.0 #2 0x00000037f32e62bd in clone () from /lib64/libc.so.6
Thread 1 (Thread 0x7ffff7fce730 (LWP 4387)): #0 0x00000037f3e0db14 in __lll_lock_wait () from /lib64/libpthread.so.0 #1 0x00000037f3e091cb in _L_lock_312 () from /lib64/libpthread.so.0 #2 0x00000037f3e08bd1 in pthread_mutex_lock () from /lib64/libpthread.so.0 #3 0x00000037ff05729e in SDL_mutexP () from /usr/lib64/libSDL-1.2.so.0 #4 0x00000000004b074b in SDL_EnableUNICODE () #5 0x00000000004a243f in SDL_EnableUNICODE () #6 0x00000000004a2721 in SDL_EnableUNICODE () #7 0x0000000000475872 in SDL_EnableUNICODE () #8 0x00000000004070e5 in SDL_EnableUNICODE () #9 0x00000037f321e576 in __libc_start_main () from /lib64/libc.so.6 #10 0x00000000004055f9 in SDL_EnableUNICODE () ---Type <return> to continue, or q <return> to quit--- #11 0x00007fffffffe658 in ?? () #12 0x000000000000001c in ?? () #13 0x0000000000000001 in ?? () #14 0x00007fffffffe8a0 in ?? () #15 0x0000000000000000 in ?? () #0 0x00000037faa2e1d7 in ?? ()
I don't know why the code ends up at a location that does not belong to any .so (at least according to gdb). Let's look at the process maps. Please make two map dumps: one while the game is running and one when it segfaults, and post them here. Assuming you are using a debug build and the executable is uqm-debug, dump the maps like so:
Code:
cat /proc/`pidof uqm-debug`/maps
(probably better to redirect the output to some file) You will need to do the dumps in a separate terminal window. Of course, the game has to be under gdb when it segfaults, or you'll be dumping a map of a process that does not exist anymore
« Last Edit: July 26, 2009, 06:59:40 pm by fossil »
I don't know why this happens. Perhaps someone else can tell why. You may need to rebuild the uqm-debug executable, especially if you recently upgraded the OS.
That sounds like a problem with gdb itself. I suspect that the suspend signal which is sent to the child somehow ends up at the gdb process itself. Are you running a recent gdb and kernel? What happens if you continue gdb by typing 'fg' on your shell prompt? Something else you could try is to run uqm, and then attach gdb to the running process:
Code:
gdb uqm-debug `pidof uqm-debug`
Logged
“When Juffo-Wup is complete when at last there is no Void, no Non when the Creators return then we can finally rest.”