graphics/rawtherapee: r342622 crashes on HEAD

Matthias Andree mandree at FreeBSD.org
Wed Feb 5 22:48:44 UTC 2014


Hi Rainer,

this is more useful as a backtrace in itself, but I don't know how to
make heads or tails of it; the interesting parts appear to be in frames
#5 (meaning that you might need to reinstall glibmm WITH_DEBUG=yes)  and
#8/#9 (where the whole call chain starts).

I can say that rawtherapee starts properly for me on 9.2-RELEASE and
10.0-RELEASE amd64 (the former has packages built from source, the
latter uses binary packages installed with pkg upgrade), even with
aggressive optimization.

Unfortunately, I do not have the time to debug highly complex ports on
any STABLE/UNSTABLE/HEAD tree. My ports work is limited to what I can do
on -RELEASE.

So I propose to
1. first trying the libc++.so mapping that Baptiste Daroussin has
proposed, and if that does not help,

2. hack the Makefile to use only -O for optimization and then see in the
frames #9/#8 if the string passed down is properly initialized, and in
frame #5 what data arrives and why glibmm fails to convert it.

Also make sure that all requisites of rawtherapee are up to date, there
have been many changes to a few of the requisites lately.

> Okay, here it comes. RawTherapee from before, with newer gdb:
> Terminating due to uncaught exception 0x4fe78700 of type Glib::ConvertError
> 
> Program received signal SIGABRT, Aborted.
...

> No symbol table info available.
> #3  0x00000000423aa8f8 in Glib::ConvertError::throw_func(_GError*) ()
> from /usr/local/lib/libglibmm-2.4.so.1
> No symbol table info available.
> #4  0x00000000423baa0f in Glib::Error::throw_exception(_GError*) () from
> /usr/local/lib/libglibmm-2.4.so.1
> No symbol table info available.
> #5  0x00000000423c60b4 in
> Glib::operator<<(std::__1::basic_ostream<wchar_t,
> std::__1::char_traits<wchar_t> >&, Glib::ustring const&) () from
> /usr/local/lib/libglibmm-2.4.so.1
> No symbol table info available.
> #6  0x000000000064fce7 in
> Glib::ustring::FormatStream::stream<Glib::ustring> (this=0x7fffffffbae0,
> value=...) at /usr/local/include/glibmm-2.4/glibmm/ustring.h:1057
> No locals.
> #7  0x000000000064f765 in Glib::ustring::format<Glib::ustring, char [9]>
> (a1=..., a2=...) at /usr/local/include/glibmm-2.4/glibmm/ustring.h:1145
>         buf = {stream_ =
>     {<std::__1::basic_ostream<wchar_t, std::__1::char_traits<wchar_t> >>
> = {<std::__1::basic_ios<wchar_t, std::__1::char_traits<wchar_t> >> =
> {<std::__1::ios_base> = {<No data fields>}, __tie_ = 0x0,
>                 __fill_ = -1}, _vptr.basic_ostream = 0xf853b8 <vtable
> for std::__1::basic_ostringstream<wchar_t,
> std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >+24>},
>             __sb_ = {<std::__1::basic_streambuf<wchar_t,
> std::__1::char_traits<wchar_t> >> = {
>                 _vptr.basic_streambuf = 0xf85490 <vtable for
> std::__1::basic_stringbuf<wchar_t, std::__1::char_traits<wchar_t>,
> std::__1::allocator<wchar_t> >+16>, __loc_ = {static none = 0,
>                   static collate = 1, static ctype = 2, static monetary
> = 8, static numeric = 16, static time = 32, static messages = 4, static
> all = 63, __locale_ = 0x484c0ee0}, __binp_ = 0x0,
>                 __ninp_ = 0x0, __einp_ = 0x0, __bout_ = 0x7fffffffbb2c
> L"", __nout_ = 0x7fffffffbb2c L"", __eout_ = 0x7fffffffbb3c L""},
>               __str_ = {<std::__1::__basic_string_common<true>> = {<No
> data fields>},
>                 __r_ =
> {<std::__1::__libcpp_compressed_pair_imp<std::__1::basic_string<wchar_t,
> std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >::__rep,
> std::__1::allocator<wchar_t>, 2u>> = {<std::__1::allocator<wchar_t>> =
> {<No data fields>}, __first_ = {{__l = {__cap_ = 8, __size_ = 0, __data_
> = 0x0}, __s = {{__size_ = 8 '\b', __lx = 8 L'\b\000\000\000'},
>                           __data_ = L'\000' <repeats 16 times>}, __r =
> {__words = {8, 0, 0}}}}}, <No data fields>}, static npos =
> 18446744073709551615}, __hm_ = 0x7fffffffbb2c L"", __mode_ = 16}}}
> #8  0x000000000064c798 in RTImage::setPaths (opt=...) at
> /usr/ports/graphics/rawtherapee/work/rawtherapee-4.0.12/rtgui/rtimage.cc:101
>         configFilename = {static npos = 18446744073709551615, string_ =
> {<std::__1::__basic_string_common<true>> = {<No data fields>},
>             __r_ =
> {<std::__1::__libcpp_compressed_pair_imp<std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char> >::__rep,
> std::__1::allocator<char>, 2u>> = {<std::__1::allocator<char>> = {<No
> data fields>}, __first_ = {{__l = {__cap_ = 0, __size_ = 0, __data_ =
> 0x0}, __s = {{__size_ = 0 '\000', __lx = 0 '\000'}, __data_ = '\000'
> <repeats 22 times>}, __r = {__words = {0,
>                         0, 0}}}}}, <No data fields>}, static npos =
> 18446744073709551615}}
>         keyFile = {<Glib::KeyFile> = {gobject_ = 0x4ec15d80,
> owns_gobject_ = true}, <No data fields>}
>         hasKeyFile = true
> #9  0x0000000000696aaf in main (argc=1, argv=0x7fffffffd6d0) at
> /usr/ports/graphics/rawtherapee/work/rawtherapee-4.0.12/rtgui/main.cc:239
>         m = <incomplete type>
>         icon_path = {static npos = 18446744073709551615, string_ =
> {<std::__1::__basic_string_common<true>> = {<No data fields>},
>             __r_ =
> {<std::__1::__libcpp_compressed_pair_imp<std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char> >::__rep,
> std::__1::allocator<char>, 2u>> = {<std::__1::allocator<char>> = {<No
> data fields>}, __first_ = {{__l = {__cap_ = 49, __size_ = 35, __data_ =
> 0x4fe3d220 "/usr/local/share/rawtherapee/images"}, __s = {{__size_ = 49
> '1', __lx = 49 '1'},
>                       __data_ =
> "\000\000\000\000\000\000\000#\000\000\000\000\000\000\000
> \322\343O\000\000\000"}, __r = {__words = {49, 35, 1340330528}}}}}, <No
> data fields>},
>             static npos = 18446744073709551615}}
>         rtWindow = 0x1
>         defaultIconTheme = {pCppObject_ = 0x4fde90a0}
>         settings = {pCppObject_ = 0x0}
> 
> 
>>
>> Also, if you recompile rawtherapee without the highly aggressive
>> compiler flags, does that help?
> 
> This version was compiled without the option OPTIMIZED_CFLAGS. Is this
> enough?

Perhaps not good enough for debugging...



More information about the freebsd-ports mailing list