Menu

#4 Segfault while scanning roms.

closed-fixed
5
2008-11-21
2008-11-19
No

Running 'gnome-video-arcade -b' causes a segfault while scanning roms. Running latest SVN build.

Output from gdb below.

#0 0xb7263a7b in strlen () from /lib/libc.so.6
#1 0xb73a56f3 in g_str_has_prefix () from /usr/lib/libglib-2.0.so.0
#2 0x08057442 in ?? ()
#3 0x00000411 in ?? ()
#4 0x0a0cebb8 in ?? ()
#5 0x0000000c in ?? ()
#6 0x0a078948 in ?? ()
#7 0xffffffff in ?? ()
#8 0xbfb96e3c in ?? ()
#9 0x0a0835e0 in ?? ()
#10 0xb7427383 in g_type_check_value () from /usr/lib/libgobject-2.0.so.0
#11 0xb741af9c in g_cclosure_marshal_VOID () from /usr/lib/libgobject-2.0.so.0
#12 0xb740dbd3 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#13 0xb7421e4d in signal_emit_unlocked_R () from /usr/lib/libgobject-2.0.so.0
#14 0xb7423364 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#15 0xb74237c6 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#16 0x08064ad7 in ?? ()
#17 0x09f49870 in ?? ()
#18 0x00000118 in ?? ()
#19 0x00000000 in ?? ()

Discussion

  • Matthew Barnes

    Matthew Barnes - 2008-11-19

    Thanks for the bug report. Would you mind installing debugging packages for glib and gtk, and also rebuilding GVA with the -g compiler option? That way I can see file names and source code line numbers in the GDB output. It's really hard to debug otherwise. Depending on your distro, the debugging packages would be named something like glib2-debuginfo or libglib2.0-0-dbg. Let me know if you need help with any of this.

     
  • Matthew Barnes

    Matthew Barnes - 2008-11-19

    Also, are you using sdlmame or xmame, and what version?

     
  • Nobody/Anonymous

    I am using Archlinux with sdlmame 0.128, there do not seem to be any packages such as you listed, so I had to recompile glib2.

    #0 0xb735ca7b in strlen () from /lib/libc.so.6
    #1 0xb74b66f3 in IA__g_str_has_prefix (
    str=0x411 <Address 0x411 out of bounds>, prefix=0x867fec8 "phoenixt")
    at gstrfuncs.c:2789
    #2 0x08057452 in audit_show_dialog (process=0x84f3870, status=512,
    data=0x8908220) at gva-audit.c:111
    #3 0xb7530f9c in IA__g_cclosure_marshal_VOID__INT (closure=0x86c6178,
    return_value=0x0, n_param_values=2, param_values=0x862d190,
    invocation_hint=0xbfbc3f7c, marshal_data=0x8057320) at gmarshal.c:216
    #4 0xb7523bd3 in IA__g_closure_invoke (closure=0x86c6178, return_value=0x0,
    n_param_values=2, param_values=0x862d190, invocation_hint=0xbfbc3f7c)
    at gclosure.c:767
    #5 0xb7537e4d in signal_emit_unlocked_R (node=0x843bda8, detail=0,
    instance=0x84f3870, emission_return=0x0, instance_and_params=0x862d190)
    at gsignal.c:3244
    #6 0xb7539364 in IA__g_signal_emit_valist (instance=0x84f3870, signal_id=280,
    detail=0, var_args=0xbfbc4120 "\001") at gsignal.c:2977
    #7 0xb75397c6 in IA__g_signal_emit (instance=0x84f3870, signal_id=280,
    detail=0) at gsignal.c:3034
    #8 0x08064ae7 in process_source_removed (process=0x84f3870)
    at gva-process.c:122
    #9 0xb7495904 in g_source_callback_unref (cb_data=0x86778e8) at gmain.c:1262
    #10 0xb7495f00 in g_source_destroy_internal (source=0x8656498,
    ---Type <return> to continue, or q <return> to quit---
    context=0x84058d0, have_lock=1) at gmain.c:1041
    #11 0xb7496316 in IA__g_main_context_dispatch (context=0x84058d0)
    at gmain.c:2169
    #12 0xb7499953 in g_main_context_iterate (context=0x84058d0, block=1,
    dispatch=1, self=0x83df028) at gmain.c:2778
    #13 0xb7499b11 in IA__g_main_context_iteration (context=0x84058d0, may_block=1)
    at gmain.c:2841
    #14 0xb794a064 in gtk_main_iteration () from /usr/lib/libgtk-x11-2.0.so.0
    #15 0x080600d5 in gva_main_analyze_roms (error=0xbfbc42e8) at gva-main.c:306
    #16 0x08069bf7 in start () at main.c:149
    #17 0xb794a1c5 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
    #18 0x08069afe in main (argc=Cannot access memory at address 0x1
    ) at main.c:290

     
  • Matthew Barnes

    Matthew Barnes - 2008-11-20

    Perfect, thanks Daniel.

    Looks like the problem occurs when it's trying to show the "Audit Results" window. Unfortunately I still can't quite pin down what's going on. I tried this on my machine using a self-compiled sdlmame 0.128 and didn't experience the crash, but I'm sure we're getting different results from the ROM audit.

    You said you're building from Subversion. Would you mind updating to revision 284, where I added some extra debugging hooks, and then building again? Then I'd like you to run the following command and attach the resulting "dump" file here. The "dump" file was about 3 MB for me.

    $ GVA_DEBUG=mame,io gnome-video-arcade -b | tail -n 30000 > dump

     
  • Daniel Rammelt

    Daniel Rammelt - 2008-11-20

    Dump from SVN 284

     
  • Daniel Rammelt

    Daniel Rammelt - 2008-11-20

    File Added: dump.tar.bz2

     
  • Matthew Barnes

    Matthew Barnes - 2008-11-21

    Got it. If the first game analyzed is bad, the parser crashes due to an integer rollover.

    Please try updating to revision 285 and see if that fixes the crash for you.

     
  • Daniel Rammelt

    Daniel Rammelt - 2008-11-21

    Yup all sorted, thanks a bunch :)

     
  • Matthew Barnes

    Matthew Barnes - 2008-11-21
    • assigned_to: nobody --> mfbarnes
    • status: open --> closed-fixed
     
  • Matthew Barnes

    Matthew Barnes - 2008-11-21

    Great! Thanks for your help testing. New release shortly.

     

Log in to post a comment.