desmume2015 icon indicating copy to clipboard operation
desmume2015 copied to clipboard

Segfault if you Open Archive as Folder

Open sergiobenrocha2 opened this issue 9 years ago • 4 comments

I'm getting segfault if I try to "Open Archive as Folder", it happens with zip or 7z. It works if I Load Archive with Core.

I can't get a full backtrace, see #58

Program received signal SIGSEGV, Segmentation fault.
0x00007fffbb20ea17 in Sequencer::execHardware() () from /home/sergio/Games/RetroArch/cores/desmume_libretro.so
(gdb) bt full
#0  0x00007fffbb20ea17 in Sequencer::execHardware() () from /home/sergio/Games/RetroArch/cores/desmume_libretro.so
No symbol table info available.
#1  0x00007fffbb2104c3 in NDS_exec(int) () from /home/sergio/Games/RetroArch/cores/desmume_libretro.so
No symbol table info available.
#2  0x00007fffbb2749e4 in retro_run () from /home/sergio/Games/RetroArch/cores/desmume_libretro.so
No symbol table info available.
#3  0x000000000041c416 in rarch_main_iterate (sleep_ms=sleep_ms@entry=0x7fffffffddf0) at runloop.c:1130
        i = <optimized out>
        trigger_input = <optimized out>
        cmd = {fullscreen_toggle = <optimized out>, overlay_next_pressed = <optimized out>, grab_mouse_pressed = <optimized out>, menu_pressed = <optimized out>, 
          quit_key_pressed = <optimized out>, screenshot_pressed = <optimized out>, mute_pressed = <optimized out>, osk_pressed = <optimized out>, 
          volume_up_pressed = <optimized out>, volume_down_pressed = <optimized out>, reset_pressed = <optimized out>, disk_prev_pressed = <optimized out>, 
          disk_next_pressed = <optimized out>, disk_eject_pressed = <optimized out>, movie_record = <optimized out>, save_state_pressed = <optimized out>, 
          load_state_pressed = <optimized out>, slowmotion_pressed = <optimized out>, shader_next_pressed = <optimized out>, shader_prev_pressed = <optimized out>, 
          fastforward_pressed = <optimized out>, hold_pressed = <optimized out>, old_hold_pressed = false, state_slot_increase = <optimized out>, 
          state_slot_decrease = <optimized out>, pause_pressed = <optimized out>, frameadvance_pressed = <optimized out>, rewind_pressed = <optimized out>, 
          netplay_flip_pressed = <optimized out>, cheat_index_plus_pressed = <optimized out>, cheat_index_minus_pressed = <optimized out>, cheat_toggle_pressed = <optimized out>}
        do_quit = <optimized out>
        last_input = 0
        driver = 0x7bbc80 <g_driver>
        settings = 0x7fffec567010
        input = <optimized out>
        system = <optimized out>
        old_input = <optimized out>
#4  0x00000000004125e7 in rarch_main (argc=<optimized out>, argv=<optimized out>, data=0x0) at frontend/frontend.c:345
        sleep_ms = 0
        args = 0x0
        ret = <optimized out>
        settings = 0x7fffec567010
        driver = <optimized out>
#5  0x00007ffff23deec5 in __libc_start_main (main=0x40f010 <main>, argc=1, argv=0x7fffffffdf18, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, 
    stack_end=0x7fffffffdf08) at libc-start.c:287
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, -6620443363659441001, 4255767, 140737488346896, 0, 0, 6620443364724350103, 6620451626623081623}, mask_was_saved = 0}}, 
          priv = {pad = {0x0, 0x0, 0x50d520 <__libc_csu_init>, 0x7fffffffdf18}, data = {prev = 0x0, cleanup = 0x0, canceltype = 5297440}}}
        not_first_call = <optimized out>
#6  0x000000000040f040 in _start ()
No symbol table info available.

sergiobenrocha2 avatar Sep 18 '15 21:09 sergiobenrocha2

Great, the debug works now:

Program received signal SIGSEGV, Segmentation fault.
0x00007fffbb16a544 in isTriggered (this=0x7fffbda7c9a0 <sequencer+128>) at src/NDSSystem.cpp:964
964         return (controller->dmaCheck && nds_timer>= controller->nextEvent);
(gdb) bt full
#0  0x00007fffbb16a544 in isTriggered (this=0x7fffbda7c9a0 <sequencer+128>) at src/NDSSystem.cpp:964
No locals.
#1  Sequencer::execHardware (this=0x7fffbda7c920 <sequencer>) at src/NDSSystem.cpp:1579
No locals.
#2  0x00007fffbb16c2d7 in NDS_exec (nb=1120380) at src/NDSSystem.cpp:1859
        s32next = 32767
        arm9arm7 = {first = -329453992, second = 4161535}
        next = 67071968
        nds_timer_base = 140736375278528
        arm9 = 32767
        arm7 = -329518744
#3  0x00007fffbb20f247 in retro_run () at src/libretro/libretro.cpp:983
        layout = {dst = 0x12b96a0, dst2 = 0x12d16a0, touch_x = 0, touch_y = 192, width = 256, height = 384, pitch = 256, draw_screen1 = true, draw_screen2 = true}
        updated = false
        have_touch = false
        skipped = false
#4  0x000000000041e9d1 in rarch_main_iterate (sleep_ms=0x7fffffffdf10) at runloop.c:1038
        ret = 1
        i = 5
        trigger_input = 0
        cmd = {fullscreen_toggle = false, overlay_next_pressed = false, grab_mouse_pressed = false, menu_pressed = false, quit_key_pressed = false, screenshot_pressed = false, 
          mute_pressed = false, osk_pressed = false, volume_up_pressed = false, volume_down_pressed = false, reset_pressed = false, disk_prev_pressed = false, disk_next_pressed = false, 
          disk_eject_pressed = false, movie_record = false, save_state_pressed = false, load_state_pressed = false, slowmotion_pressed = false, shader_next_pressed = false, 
          shader_prev_pressed = false, fastforward_pressed = false, hold_pressed = false, old_hold_pressed = false, state_slot_increase = false, state_slot_decrease = false, 
          pause_pressed = false, frameadvance_pressed = false, rewind_pressed = false, netplay_flip_pressed = false, cheat_index_plus_pressed = false, cheat_index_minus_pressed = false, 
          cheat_toggle_pressed = false}
        current = 4320685
        target = 140737488346816
        to_sleep_ms = 4321251
        last_input = 0
        devices = 0
        driver = 0x81f760 <g_driver>
        settings = 0x7fffec565010
        global = 0x7f4080 <g_extern>
        input = 0
        system = 0x895860
        old_input = 256
#5  0x00000000004118a3 in rarch_main (argc=1, argv=0x7fffffffe048, data=0x0) at frontend/frontend.c:342
        sleep_ms = 0
        args = 0x0
        ret = 0
        settings = 0x7fffec565010
        driver = 0x81f760 <g_driver>
#6  0x0000000000411900 in main (argc=1, argv=0x7fffffffe048) at frontend/frontend.c:358
No locals.

sergiobenrocha2 avatar Oct 30 '15 03:10 sergiobenrocha2

Changing to info->need_fullpath = true; fix it

sergiobenrocha2 avatar Oct 30 '15 03:10 sergiobenrocha2

4624e10 broke it...

sergiobenrocha2 avatar Oct 31 '15 02:10 sergiobenrocha2

@twinaphex, did this core ever support need_fullpath = false ?

sergiobenrocha2 avatar Oct 31 '15 02:10 sergiobenrocha2