[Rawstudio-dev] Fwd: Crash in rawstudio 1.2 when loading first photo in transform_nocms8_3dnow
David Sharp
whereami at gmail.com
Sat May 1 10:36:11 CEST 2010
-rawstudio-users, +rawstudio-dev
any clues? need more info?
On Thu, Feb 11, 2010 at 12:40 AM, David Sharp <whereami at gmail.com> wrote:
> The application starts, shows thumbnails across the top, but crashes
> as soon as I open a photo.
>
> It segfaults in transform_nocms8_3dnow, which is odd because I would
> think it would be using the sse version, since I have an athlon64
> which should support sse.
>
> Here's a backtrace:
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x000000000045f88b in transform_nocms8_3dnow ()
> Current language: auto
> The current source language is "auto; currently asm".
> (gdb) bt
> #0 0x000000000045f88b in transform_nocms8_3dnow ()
> #1 0x0000000000461b2e in buffer ()
> #2 0x0000000000461d0a in redraw ()
> #3 0x0000000000463173 in rs_preview_widget_update ()
> #4 0x0000000000464688 in rs_preview_widget_set_photo ()
> #5 0x000000000041324c in rs_set_photo ()
> #6 0x000000000042020f in icon_activated ()
> #7 0x0000003cda20d12d in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
> #8 0x0000003cda2222b2 in signal_emit_unlocked_R () from
> /usr/lib/libgobject-2.0.so.0
> #9 0x0000003cda223807 in g_signal_emit_valist () from
> /usr/lib/libgobject-2.0.so.0
> #10 0x0000003cda223cd3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
> #11 0x000000000045ed07 in selection_changed ()
> #12 0x0000003cda20d12d in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
> #13 0x0000003cda2222b2 in signal_emit_unlocked_R () from
> /usr/lib/libgobject-2.0.so.0
> #14 0x0000003cda223807 in g_signal_emit_valist () from
> /usr/lib/libgobject-2.0.so.0
> #15 0x0000003cda223cd3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
> #16 0x00007ffff7afe870 in gtk_icon_view_button_press () from
> /usr/lib/libgtk-x11-2.0.so.0
> #17 0x00007ffff7b22438 in _gtk_marshal_BOOLEAN__BOXED () from
> /usr/lib/libgtk-x11-2.0.so.0
> #18 0x0000003cda20d12d in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
> #19 0x0000003cda221fa6 in signal_emit_unlocked_R () from
> /usr/lib/libgobject-2.0.so.0
> #20 0x0000003cda2236a0 in g_signal_emit_valist () from
> /usr/lib/libgobject-2.0.so.0
> #21 0x0000003cda223cd3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
> #22 0x00007ffff7c213a6 in gtk_widget_event_internal () from
> /usr/lib/libgtk-x11-2.0.so.0
> #23 0x00007ffff7b1b19b in gtk_propagate_event () from
> /usr/lib/libgtk-x11-2.0.so.0
> #24 0x00007ffff7b1c22b in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
> #25 0x00007ffff779e0fc in gdk_event_dispatch () from
> /usr/lib/libgdk-x11-2.0.so.0
> #26 0x0000003cdae38e51 in g_main_context_dispatch () from
> /usr/lib/libglib-2.0.so.0
> #27 0x0000003cdae3c3e8 in g_main_context_iterate () from
> /usr/lib/libglib-2.0.so.0
> #28 0x0000003cdae3c8bd in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
> #29 0x00007ffff7b1c617 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
> #30 0x000000000041fe66 in gui_init ()
> #31 0x0000000000412a19 in main ()
>
>
> Here's some light debugging/disassembly work:
>
> d[destoffset++] = rct->table8[r];
> d[destoffset++] = rct->table8[g];
> d[destoffset++] = rct->table8[b];
>
> 0x000000000045f865 <transform_nocms8_3dnow+485>: mov
> 0x148(%rdi),%rax %rax = rct->table8
> 0x000000000045f86c <transform_nocms8_3dnow+492>: movzbl (%rax,%rbx,1),%eax
> 0x000000000045f870 <transform_nocms8_3dnow+496>: mov %al,(%r9,%rdx,1)
> 0x000000000045f874 <transform_nocms8_3dnow+500>: mov 0x148(%rdi),%rax
> 0x000000000045f87b <transform_nocms8_3dnow+507>: movzbl (%rax,%rsi,1),%eax
> 0x000000000045f87f <transform_nocms8_3dnow+511>: mov %al,0x1(%r9,%rdx,1)
> 0x000000000045f884 <transform_nocms8_3dnow+516>: mov
> 0x148(%rdi),%rax %rax = rct->table8
> 0x000000000045f88b <transform_nocms8_3dnow+523>: movzbl
> (%rax,%r11,1),%eax %eax = *(%rax+b) *** crash ***
> 0x000000000045f890 <transform_nocms8_3dnow+528>: mov
> %al,0x2(%r9,%rdx,1) d[destoffset+2] = %al
> 0x000000000045f895 <transform_nocms8_3dnow+533>: add $0x3,%rdx
> destoffset += 3
>
> r => %rbx = 0
> g => %rsi = 0
> b => %r11 = 0x52f9000052f9 91229400355577
> destoffset => %rdx = 0
> d => %r9 = 0xc89f80
> mat => %rbp = 0x7fffffffc920
> *mat:
> (gdb) x/12wf 0x7fffffffc920
> 0x7fffffffc920: 1.2081722 -0.15823926 -0.0499329716 0
> 0x7fffffffc930: 0.0230940226 1.23610961 -0.259203643 0
> 0x7fffffffc940: 0.0542779602 -0.188402981 1.13412499 0
> (gdb) x/12wx 0x7fffffffc920
> 0x7fffffffc920: 0x3f9aa563 0xbe220979 0xbd4c8684 0x00000000
> 0x7fffffffc930: 0x3cbd2fad 0x3f9e38d7 0xbe84b657 0x00000000
> 0x7fffffffc940: 0x3d5e5291 0xbe40ecb6 0x3f912b02 0x00000000
>
>
> As you can see, b is waaay off. I think 0x529f is a more reasonable
> value (the lower 32 bits)?
>
More information about the Rawstudio-dev
mailing list