#25 segfault while starting Rezound

open
Davy Durham
None
5
2005-12-06
2005-12-05
Taj Morton
No

Hello,
I've been looking for a sound editing program for Linux
and found ReZound. I compiled and installed it on my
Slackware 10.1 box, but it won't start. Instead, it
segfaults:
Here's part of the strace:
open("/home/taj/.icons/whiteglass/cursors/c146030404000800182038c878a3f047",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/taj/.icons/whiteglass/index.theme",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/icons/whiteglass/cursors/c146030404000800182038c878a3f047",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/icons/whiteglass/index.theme",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/pixmaps/whiteglass/cursors/c146030404000800182038c878a3f047",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/pixmaps/whiteglass/index.theme",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/X11R6/lib/X11/icons/whiteglass/cursors/c146030404000800182038c878a3f047",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/X11R6/lib/X11/icons/whiteglass/index.theme",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/taj/.icons/default/cursors/c146030404000800182038c878a3f047",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/taj/.icons/default/index.theme", O_RDONLY)
= -1 ENOENT (No such file or directory)
open("/usr/share/icons/default/cursors/c146030404000800182038c878a3f047",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/icons/default/index.theme", O_RDONLY)
= -1 ENOENT (No such file or directory)
open("/usr/share/pixmaps/default/cursors/c146030404000800182038c878a3f047",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/pixmaps/default/index.theme",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/X11R6/lib/X11/icons/default/cursors/c146030404000800182038c878a3f047",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/X11R6/lib/X11/icons/default/index.theme",
O_RDONLY) = 4
fstat64(4, {st_mode=S_IFREG|0755, st_size=27, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40024000
read(4, "[Icon Theme]\nInherits=core\n", 4096) = 27
close(4) = 0
munmap(0x40024000, 4096) = 0
open("/home/taj/.icons/core/cursors/c146030404000800182038c878a3f047",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/taj/.icons/core/index.theme", O_RDONLY) =
-1 ENOENT (No such file or directory)
open("/usr/share/icons/core/cursors/c146030404000800182038c878a3f047",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/icons/core/index.theme", O_RDONLY) =
-1 ENOENT (No such file or directory)
open("/usr/share/pixmaps/core/cursors/c146030404000800182038c878a3f047",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/pixmaps/core/index.theme", O_RDONLY) =
-1 ENOENT (No such file or directory)
open("/usr/X11R6/lib/X11/icons/core/cursors/c146030404000800182038c878a3f047",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/X11R6/lib/X11/icons/core/index.theme",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/rezound.mo",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/rezound.mo",
O_RDONLY) = -1 ENOENT (No such file or directory)
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++

Any ideas? Thanks!
--
Taj

Discussion

  • Davy Durham
    Davy Durham
    2005-12-06

    • assigned_to: nobody --> ddurham
     
  • Davy Durham
    Davy Durham
    2005-12-06

    Logged In: YES
    user_id=28588

    Try running in gdb to get a stack trace (run .. <crash> .. bt)

     
  • Taj Morton
    Taj Morton
    2005-12-06

    Logged In: YES
    user_id=615095

    Program received signal SIGSEGV, Segmentation fault.
    [Switching to Thread 16384 (LWP 3452)]
    std::basic_stringbuf<char, std::char_traits<char>,
    std::allocator<char> >::overflow (
    this=0xbfffeae4, __c=45) at sstream.tcc:83
    83 int_type __ret = traits_type::eof();
    (gdb) bt
    #0 std::basic_stringbuf<char, std::char_traits<char>,
    std::allocator<char> >::overflow (
    this=0xbfffeae4, __c=45) at sstream.tcc:83
    #1 0x408aa245 in std::basic_streambuf<char,
    std::char_traits<char> >::sputc ()
    from /usr/lib/./libstdc++.so.6
    #2 0x08060f96 in std::basic_stringbuf<char,
    std::char_traits<char>, std::allocator<char> >::overflow
    (this=0xbfffeae4, __c=45) at sstream.tcc:98
    #3 0x408aa245 in std::basic_streambuf<char,
    std::char_traits<char> >::sputc ()
    from /usr/lib/./libstdc++.so.6
    #4 0x08060f96 in std::basic_stringbuf<char,
    std::char_traits<char>, std::allocator<char> >::overflow
    (this=0xbfffeae4, __c=45) at sstream.tcc:98
    #5 0x408aa245 in std::basic_streambuf<char,
    std::char_traits<char> >::sputc ()
    from /usr/lib/./libstdc++.so.6
    #6 0x08060f96 in std::basic_stringbuf<char,
    std::char_traits<char>, std::allocator<char> >::overflow
    (this=0xbfffeae4, __c=45) at sstream.tcc:98
    #7 0x408aa245 in std::basic_streambuf<char,
    std::char_traits<char> >::sputc ()
    from /usr/lib/./libstdc++.so.6
    #8 0x08060f96 in std::basic_stringbuf<char,
    std::char_traits<char>, std::allocator<char> >::overflow
    (this=0xbfffeae4, __c=45) at sstream.tcc:98
    #9 0x408aa245 in std::basic_streambuf<char,
    std::char_traits<char> >::sputc ()
    from /usr/lib/./libstdc++.so.6
    #10 0x08060f96 in std::basic_stringbuf<char,
    std::char_traits<char>, std::allocator<char> >::overflow
    (this=0xbfffeae4, __c=45) at sstream.tcc:98
    #11 0x408aa245 in std::basic_streambuf<char,
    std::char_traits<char> >::sputc ()
    from /usr/lib/./libstdc++.so.6
    #12 0x08060f96 in std::basic_stringbuf<char,
    std::char_traits<char>, std::allocator<char> >::overflow
    (this=0xbfffeae4, __c=45) at sstream.tcc:98
    #13 0x408aa245 in std::basic_streambuf<char,
    std::char_traits<char> >::sputc ()
    from /usr/lib/./libstdc++.so.6
    #14 0x08060f96 in std::basic_stringbuf<char,
    std::char_traits<char>, std::allocator<char> >::overflow
    (this=0xbfffeae4, __c=45) at sstream.tcc:98
    #15 0x408aa245 in std::basic_streambuf<char,
    std::char_traits<char> >::sputc ()
    from /usr/lib/./libstdc++.so.6

     
  • Taj Morton
    Taj Morton
    2005-12-06

    Logged In: YES
    user_id=615095

    Oops, I realized that there was more--a lot of it. Do you
    want it too?

    Thanks!
    --
    Taj

     
  • Davy Durham
    Davy Durham
    2005-12-07

    Logged In: YES
    user_id=28588

    If it goes on an on for pages all within
    std::basic_streambuf, then it looks like it's an infinite
    recursion error in the STL most likely. The last 10 or 15
    items among in the backtrace might reveal the start of the
    problem.

     
  • Taj Morton
    Taj Morton
    2005-12-07

    Logged In: YES
    user_id=615095

    Here's the last line--yes, it goes on for pages and pages...

    #37263 0x408aa245 in std::basic_streambuf<char,
    std::char_traits<char> >::sputc ()
    from /usr/lib/./libstdc++.so.6
    ---Type <return> to continue, or q <return> to quit---
    #37264 0x08060f96 in std::basic_stringbuf<char,
    std::char_traits<char>, std::allocator<char> >::overflow
    (this=0xbfffeae4, __c=45) at sstream.tcc:98
    #37265 0x408aa2ac in std::basic_streambuf<char,
    std::char_traits<char> >::xsputn ()
    from /usr/lib/./libstdc++.so.6
    #37266 0x40891d41 in std::num_put<char,
    std::ostreambuf_iterator<char, std::char_traits<char> >
    >::_M_insert_float<double> () from /usr/lib/./libstdc++.so.6
    #37267 0x40892076 in std::num_put<char,
    std::ostreambuf_iterator<char, std::char_traits<char> >
    >::do_put () from /usr/lib/./libstdc++.so.6
    #37268 0x408a198a in std::ostream::operator<< () from
    /usr/lib/./libstdc++.so.6
    #37269 0x080dbafd in istring<double> (this=0xbfffecb0,
    val=-24, min_width=3, precision=1,
    zero_pad=false) at istring:85
    #37270 0x080de846 in CMetersWindow (this=0x85eaf50,
    parent=0x85eaeb8) at CMetersWindow.cpp:1083
    #37271 0x0809aa9f in CMainWindow (this=0x85eabb0,
    a=0x8567100) at CMainWindow.cpp:208
    #37272 0x0805b998 in main (argc=1, argv=0xbffff354) at
    main.cpp:107

    Thanks!
    --
    Taj

     
  • Davy Durham
    Davy Durham
    2005-12-07

    Logged In: YES
    user_id=28588

    as you can see in stack frame #37269 that istring is called as

    istring(-24.0,3,1,false)

    in src/frontend_fox/CMetersWindow.cpp

    This is when it is building the numerical labels on the
    audio level meters, -24dB happens to be the first value on
    the meter (so it's probably the first time istring is called
    to convert a double value to a string)

    This almost surely a bug in the STL (libstdc++) but it
    possibly could be due to a stack corruption (but I doubt it).

    Try adding printf("%s\n",istring(-24.0,3,1,false).c_str());
    to src/frontend/main.cpp at the very beginning of main()
    (you might need to #include <istring>), run rezound again
    and see if prints -24.0 to the command line.

    If it does successfully print, then try putting the printf
    after the call to setLocaleFont() in main() to see if it's
    due to a bug in the STL when the locale is not the default
    "C". So, run it again after moving it after the setting of
    the locale.

    Are you running in some foreign language? echo $LANG or
    $LANGUAGE at the command line to see.

     
  • Taj Morton
    Taj Morton
    2005-12-07

    Logged In: YES
    user_id=615095

    Nope, doesn't say anything when I add a printf to the top of
    main().
    $ echo $LANG
    en_US

    Any other ideas?

    Thanks,
    Taj

     
  • Davy Durham
    Davy Durham
    2005-12-07

    Logged In: YES
    user_id=28588

    Did you add it before and after setLocaleFont() is called?
    I'm thinking that if it's a bug with the STL it may only
    show up when the local is set (because it formats numbers
    differently depending on the locale)

    Then again, it shouldn't do anything different since you're
    locale is basically equivalend to "C"