ok it happened again and I could attach to one thread:
CODE
(gdb) bt
#0 0x00129a70 in __pthread_sigsuspend ()
#1 0x00128b7c in __pthread_wait_for_restart_signal ()
#2 0x00126614 in pthread_cond_wait ()
#3 0x0010bdc4 in SDL_CondWait ()
#4 0x000aa48c in update_gbc_sound (cpu_ticks=8159) at ../sound.c:478
#5 0x000091c8 in update_gba () at ../main.c:610
#6 0x000f7664 in arm_update_gba_thumb ()
#7 0x003e930c in rom_translation_cache ()
#8 0x003e930c in rom_translation_cache ()
Previous frame identical to this frame (corrupt stack?)
(gdb) p gbc_sound_buffer_index
$1 = 49542
(gdb) p sound_buffer_base
$2 = 46080
(gdb) p audio_buffer_size
$4 = 2048
(gdb) p gbc_sound_buffer_index - sound_buffer_base
$5 = 3462
(gdb) p audio_buffer_size * 3 /2
$6 = 3072
Unfortunately I was not able to attach to other threads, because the program probably needs to be linked with debug pthread library or something. GDB would just not list threads, and attaching directly to some thread caused gdb deadlock.
fusion_power said:
For me as normal user without external control possibilities maybe the emu or gmenu or whatever can be patched in the way, we land on the gp2x "desktop" after a emu-crash instead of a frozen screen and a time eating Handheld restart. This would be a big improvement so crashes don't hurt that much.
The problem is that it does not chash, it still runs, but it stops on waiting for some event which never happens. And that is not so easy to detect, because it is often normal situation.