Hello list, I'm experiencing a segmentation fault in enigma v1.01 running Fedora 10 on an x86_64. It appears when I do the following: * start enigma * choose PerOxyd from the Déjà-vu level pack * hover the "Stinker" level with the mouse (I already have completed that level, so it has worked before) As a result, enigma segfaults; the gdb backtrace is attached. When I rename my ~/.enigma directory and let enigma create a new one on startup, the problem does not appear. If it helps fixing the bug, I can also send my ~/.enigma directory. If you need any other information, just let me know.
Regards, Simon
$ gdb enigma GNU gdb Fedora (6.8-29.fc10) Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu"... (gdb) run Starting program: /usr/bin/enigma [Thread debugging using libthread_db enabled] [New Thread 0x7ffff7fd8700 (LWP 5645)] [New Thread 0x7fffef0fd950 (LWP 5648)] [Thread 0x7fffef0fd950 (LWP 5648) exited] [New Thread 0x7fffef0fd950 (LWP 5649)] [New Thread 0x7fffee6fc950 (LWP 5650)] Program received signal SIGSEGV, Segmentation fault. strlen () at ../sysdeps/x86_64/strlen.S:37 37 0: cmpb $0x0,(%rax) /* is byte NUL? */ Current language: auto; currently asm (gdb) bt full #0 strlen () at ../sysdeps/x86_64/strlen.S:37 No locals. #1 0x00000033dd44961e in _IO_vfprintf_internal (s=0x7fffffffd2c0, format=<value optimized out>, ap=0x7fffffffd460) at vfprintf.c:1581 len = <value optimized out> string_malloced = 0 alt = 0 is_long = 0 prec = -1 is_negative = 0 base = 10 string = 0xfefefefefeff3765 <Address 0xfefefefefeff3765 out of bounds> space = 0 width = 0 showsign = 0 group = 0 is_char = 0 pad = 32 ' ' the_arg = {pa_wchar = 26, pa_int = 26, pa_long_int = 26, pa_long_long_int = 26, pa_u_int = 26, pa_u_long_int = 26, pa_u_long_long_int = 26, pa_double = 1.284570679187241e-322, pa_long_double = <invalid float value>, pa_string = 0x1a <Address 0x1a out of bounds>, pa_wstring = 0x1a, pa_pointer = 0x1a} left = 0 is_long_double = 0 is_short = 0 use_outdigits = 0 spec = 115 's' _buffer = {__routine = 0xbdc570, __arg = 0x7fffffffd1d0, __canceltype = 127, __prev = 0x1} _avail = 0 thousands_sep = 0x0 grouping = 0xffffffffffffffff <Address 0xffffffffffffffff out of bounds> done = 11 f = (const unsigned char *) 0x7fffedbfa661 "s: %d:%02d" lead_str_end = <value optimized out> work_buffer = '\0' <repeats 16 times>, "\n", '\0' <repeats 47 times>, " \001\000d\000\000\000\000��\000�3\000\000\000`4�d\000\000\000\000\000\003\000\000\000\000\000\000\200z�\000\000\000\000\000�����\177\000\000\200����\177\000\000p����\177\000\000`����\177\000\000\220����\177\000\000\020T�\000\000\000\000\000�d)�3\000\000\000\030[�\000\000\000\0001\000\be\004\001\000\000\000\002\000\000\000\000\000\000\000��X\000\000\000\000\000\220\177�\000\000\000\000\000��X\000\000\000\000\000\020\000\000\0000\000\000\000\230����\177\000\000\207����\177\000\000�\t\002�3\000\000\000\227��"... workstart = 0x0 workend = 0x7fffffffd188 "�Ž" ap_save = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fffffffd540, reg_save_area = 0x7fffffffd480}} nspecs_done = 0 save_errno = 0 readonly_format = 0 jump_table = {1, 0, 0, 4, 0, 14, 0, 6, 0, 0, 7, 2, 0, 3, 9, 0, 5, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 26, 0, 25, 0, 19, 19, 19, 0, 29, 0, 0, 12, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 18, 0, 13, 0, 0, 0, 0, 0, 0, 26, 0, 20, 15, 19, 19, 19, 10, 15, 28, 0, 11, 24, 23, 17, 22, 12, 0, 21, 27, 16, 0, 0, 18, 0, 13} __PRETTY_FUNCTION__ = "_IO_vfprintf_internal" step0_jumps = {0, -2590, -1536, -931, -1440, -1344, -2496, -2292, -1985, -1751, -1027, -1124, 333, 3797, 2126, 2176, 3782, 3846, 1109, 1645, -828, -44, 3244, -585, -506, -4434, 2956, 3510, 3616, -2388} step1_jumps = {0, 0, 0, 0, 0, 0, 0, 0, 0, -1751, -1027, -1124, 333, 3797, 2126, 2176, 3782, 3846, 1109, 1645, -828, -44, 3244, -585, -506, -4434, 2956, 3510, 3616, 0} step2_jumps = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1027, -1124, 333, 3797, 2126, 2176, 3782, 3846, 1109, 1645, -828, -44, 3244, -585, -506, -4434, 2956, 3510, 3616, 0} step3a_jumps = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1230, 0, 0, 0, 2126, 2176, 3782, 3846, 1109, 0, 0, 0, 0, -585, 0, 0, 0, 0, 0, 0} step3b_jumps = {0 <repeats 11 times>, 333, 0, 0, 2126, 2176, 3782, 3846, 1109, 1645, -828, -44, 3244, -585, -506, -4434, 2956, 0, 0, 0} step4_jumps = {0 <repeats 14 times>, 2126, 2176, 3782, 3846, 1109, 1645, -828, -44, 3244, -585, -506, -4434, 2956, 0, 0, 0} step4_jumps = {2756 <repeats 14 times>, 3347, 3397, 1996, 2114, 3699, 3714, -2858, 2267, 437, 1003, 3658, -3945, -4713, 2756, 2756, 2756} #2 0x00000033dd4fc928 in ___vsnprintf_chk (s=0xb6b860 "Rekord von ", maxlen=<value optimized out>, flags=1, slen=<value optimized out>, format=0x7fffedbfa655 "Rekord von %s: %d:%02d", args=0x7fffffffd460) at vsnprintf_chk.c:65 sf = {f = {_sbf = {_f = {_flags = -72515583, _IO_read_ptr = 0xb6b860 "Rekord von ", _IO_read_end = 0xb6b860 "Rekord von ", _IO_read_base = 0xb6b860 "Rekord von ", _IO_write_base = 0xb6b860 "Rekord von ", _IO_write_ptr = 0xb6b86b "", _IO_write_end = 0xb6b91f ".�", _IO_buf_base = 0xb6b860 "Rekord von ", _IO_buf_end = 0xb6b91f ".�", _IO_save_base = 0x0, _IO_backup_base = 0x0, _IO_save_end = 0x0, _markers = 0x0, _chain = 0x0, _fileno = -11376, _flags2 = 4, _old_offset = 140737488343936, _cur_column = 0, _vtable_offset = 0 '\0', _shortbuf = "", _lock = 0x0, _offset = 11458256, _codecvt = 0x33dd47ca38, _wide_data = 0xb6d668, _freeres_list = 0x0, _freeres_buf = 0xdffffffff, _freeres_size = 222756226490, _mode = -1, _unused2 = "3\000\000\000���\000\000\000\000\000\001\000\000\000\001\000\000"}, _vtable = 0x33dd76b440}, _s = {_allocate_buffer = 0, _free_buffer = 0xc0}}, overflow_buf = "\000�v�3\000\000\000�����\177\000\000�����\177\000\000\001\000\000\000\000\000\000\000�����\177\000\0008�G�3\000\000\000�\000\000\000\000\000\000\000U����\177\000"} ret = <value optimized out> #3 0x000000000054560a in vsnprintf () at /usr/include/bits/stdio2.h:79 No locals. #4 vstrf (format=0x7fffedbfa655 "Rekord von %s: %d:%02d", argPtr=0x7fffffffd460) at ecl_util.cc:78 length = <value optimized out> buf_size = 192 buffer = 0xb6b860 "Rekord von " __PRETTY_FUNCTION__ = "std::string<unnamed>::vstrf(const char*, __va_list_tag*)" #5 0x000000000054574a in ecl::strf ( format=0x7fffedbfa655 "Rekord von %s: %d:%02d") at ecl_util.cc:96 result = {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7fffffffd5c0 " ����\177"}} argPtr = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 0x7fffffffd540, reg_save_area = 0x7fffffffd480}} #6 0x00000000004d8288 in enigma::gui::LevelMenu::update_info ( this=0x7fffffffd9b0) at gui/LevelMenu.cc:375 tmp = {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7fffed0bea98 "daydreamer+Taztunes+Thomas+Django+Johannes+Stupid+Moneymaker+Chris+Raoul+J3FF+Ghatotkacha+ged+bojster+JuSt+ShadowPhrogg32642342+para_doks+Great Scott+Ralf"}} ratingMgr = (enigma::lev::RatingManager *) 0xbdc600 wr_time = <value optimized out> par_time = 22 best_user_time = <value optimized out> wr_name_displayed = true your_time = {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xb71f28 "Ihre Zeit: 0:15 "}} is_par = true wr_name = {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7fffed0bea98 "daydreamer+Taztunes+Thomas+Django+Johannes+Stupid+Moneymaker+Chris+Raoul+J3FF+Ghatotkacha+ged+bojster+JuSt+ShadowPhrogg32642342+para_doks+Great Scott+Ralf"}} wr_text = {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x81e538 ""}} wr_cut = 1 ind = <value optimized out> size = <value optimized out> scm = (class enigma::lev::ScoreManager *) 0xbdc4c0 curProxy = (enigma::lev::Proxy *) 0x7fffed285c30 difficulty = 1 #7 0x00000000004daf69 in enigma::gui::LevelMenu::tick (this=0x7fffffffd9b0, dtime=0.01) at gui/LevelMenu.cc:159 timeaccu = 0.10999999999999999 #8 0x00000000004fb2c1 in enigma::gui::Menu::manage (this=0x7fffffffd9b0) at gui/Menu.cc:75 e = {type = 4 '\004', active = {type = 4 '\004', gain = 0 '\0', state = 0 '\0'}, key = {type = 4 '\004', which = 0 '\0', state = 0 '\0', keysym = {scancode = 223 '�', sym = 1, mod = KMOD_NONE, unicode = 0}}, motion = {type = 4 '\004', which = 0 '\0', state = 0 '\0', x = 735, y = 220, xrel = 1, yrel = 0}, button = {type = 4 '\004', which = 0 '\0', button = 0 '\0', state = 0 '\0', x = 735, y = 220}, jaxis = { type = 4 '\004', which = 0 '\0', axis = 0 '\0', value = 735}, jball = { type = 4 '\004', which = 0 '\0', ball = 0 '\0', xrel = 735, yrel = 220}, jhat = {type = 4 '\004', which = 0 '\0', hat = 0 '\0', value = 0 '\0'}, jbutton = {type = 4 '\004', which = 0 '\0', button = 0 '\0', state = 0 '\0'}, resize = {type = 4 '\004', w = 14418655, h = 1}, expose = {type = 4 '\004'}, quit = {type = 4 '\004'}, user = { type = 4 '\004', code = 14418655, data1 = 0x1, data2 = 0x0}, syswm = { type = 4 '\004', msg = 0x1}} enterTickTime = 8121 menuTickDuration = <value optimized out> #9 0x00000000004effa0 in enigma::gui::LevelPackMenu::on_action ( this=0x7fffffffdf10, w=<value optimized out>) at gui/LevelPackMenu.cc:419 m = {<enigma::gui::Menu> = {<enigma::gui::Container> = {<enigma::gui::Widget> = {<enigma::gui::ActionListener> = {_vptr.ActionListener = 0x5b5bd0}, area = {x = 0, y = 0, w = 0, h = 0}, m_parent = 0x0, m_listener = 0x0, modifierKeys = 5894513, mouseButton = 0 '\0'}, <enigma::gui::AreaManaged> = { _vptr.AreaManaged = 0x5b5c88}, m_widgets = {<std::_Vector_base<enigma::gui::Widget*, std::allocator<enigma::gui::Widget*> >> = { _M_impl = {<std::allocator<enigma::gui::Widget*>> = {<__gnu_cxx::new_allocator<enigma::gui::Widget*>> = {<No data fields>}, <No data fields>}, _M_start = 0xb881f0, _M_finish = 0xb88230, _M_end_of_storage = 0xb88230}}, <No data fields>}, managed_by = 0xb5e240}, active_widget = 0x0, quitp = false, abortp = false}, pgup = 0xb79190, pgdown = 0xb72180, start = 0xb4fbb0, end = 0xb67d90, but_advancemode = 0xb66a30, but_next = 0xb88ae0, but_back = 0xb776d0, but_difficulty = 0xb46e60, but_levelpack = 0xb38a70, hl_info_stat = 0xb5dce0, lbl_lpinfo = 0xb678f0, lbl_statistics = 0xb66b80, lbl_levelname = 0xb507d0, lbl_levelinfo = 0xb70330, levelwidget = 0xb5dd70, shown_text = {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x81e538 ""}}, shown_text_ttl = -1, main_quit = false} #10 0x0000000000505410 in enigma::gui::PushButton::on_event (this=0xb84fd0, e...@0x7fffffffdd30) at gui/widgets.cc:734 was_pressed = <value optimized out> changed = <value optimized out> #11 0x00000000004fb283 in enigma::gui::Menu::manage (this=0x7fffffffdf10) at gui/Menu.cc:71 e = {type = 6 '\006', active = {type = 6 '\006', gain = 0 '\0', state = 1 '\001'}, key = {type = 6 '\006', which = 0 '\0', state = 1 '\001', keysym = {scancode = 223 '�', sym = SDLK_UNKNOWN, mod = KMOD_NONE, unicode = 0}}, motion = {type = 6 '\006', which = 0 '\0', state = 1 '\001', x = 479, y = 274, xrel = 0, yrel = 0}, button = {type = 6 '\006', which = 0 '\0', button = 1 '\001', state = 0 '\0', x = 479, y = 274}, jaxis = {type = 6 '\006', which = 0 '\0', axis = 1 '\001', value = 479}, jball = {type = 6 '\006', which = 0 '\0', ball = 1 '\001', xrel = 479, yrel = 274}, jhat = { type = 6 '\006', which = 0 '\0', hat = 1 '\001', value = 0 '\0'}, jbutton = {type = 6 '\006', which = 0 '\0', button = 1 '\001', state = 0 '\0'}, resize = {type = 6 '\006', w = 17957343, h = 0}, expose = {type = 6 '\006'}, quit = {type = 6 '\006'}, user = { type = 6 '\006', code = 17957343, data1 = 0x0, data2 = 0x0}, syswm = { type = 6 '\006', msg = 0x0}} enterTickTime = 5523 menuTickDuration = <value optimized out> #12 0x00000000004edc0e in enigma::gui::LevelPackMenu::manageLevelMenu ( this=0x7fffffffdf10) at gui/LevelPackMenu.cc:316 finished = false #13 0x00000000004f8920 in enigma::gui::MainMenu::on_action ( this=0x7fffffffe0e0, w=<value optimized out>) at gui/MainMenu.cc:268 m = {<enigma::gui::Menu> = {<enigma::gui::Container> = {<enigma::gui::Widget> = {<enigma::gui::ActionListener> = {_vptr.ActionListener = 0x5b66f0}, area = {x = 0, y = 0, w = 0, h = 0}, m_parent = 0x0, m_listener = 0x0, modifierKeys = 3715553792, mouseButton = 51 '3'}, <enigma::gui::AreaManaged> = { _vptr.AreaManaged = 0x5b67a8}, m_widgets = {<std::_Vector_base<enigma::gui::Widget*, std::allocator<enigma::gui::Widget*> >> = { _M_impl = {<std::allocator<enigma::gui::Widget*>> = {<__gnu_cxx::new_allocator<enigma::gui::Widget*>> = {<No data fields>}, <No data fields>}, _M_start = 0xb7cef0, _M_finish = 0xb7cf08, _M_end_of_storage = 0xb7cf10}}, <No data fields>}, managed_by = 0xb859c0}, active_widget = 0xb84fd0, quitp = false, abortp = false}, static groupLastSelectedIndex = {_M_t = { _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<std::binary_function<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0xb70ef0, _M_left = 0xb788a0, _M_right = 0xb70ef0}, _M_node_count = 2}}}, static groupLastSelectedColumn = {_M_t = { _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<std::binary_function<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0xb7a210, _M_left = 0xb46590, _M_right = 0xb7a210}, _M_node_count = 2}}}, static lastGroupName = { static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7fffedc01338 "Déjà-vu"}}, static firstDisplayedGroup = 0, vm = video::VM_800x600, packButtons = {<std::_Vector_base<enigma::gui::TextButton*, std::allocator<enigma::gui::TextButton*> >> = { _M_impl = {<std::allocator<enigma::gui::TextButton*>> = {<__gnu_cxx::new_allocator<enigma::gui::TextButton*>> = {<No data fields>}, <No data fields>}, _M_start = 0xb84370, _M_finish = 0xb84398, _M_end_of_storage = 0xb843b0}}, <No data fields>}, groupButtons = {<std::_Vector_base<enigma::gui::TextButton*, std::allocator<enigma::gui::TextButton*> >> = { _M_impl = {<std::allocator<enigma::gui::TextButton*>> = {<__gnu_cxx::new_allocator<enigma::gui::TextButton*>> = {<No data fields>}, <No data fields>}, _M_start = 0xb5df70, _M_finish = 0xb5dfa8, _M_end_of_storage = 0xb5dfb0}}, <No data fields>}, packsHList = 0xb7a180, scrollLeft = 0x0, scrollRight = 0x0, scrollUp = 0x0, scrollDown = 0x0, groupsVList = 0x7fffec5258e0, commandHList = 0x7fffeca65a00, but_search = 0xb835f0, but_new = 0xb83170, but_level = 0xb83a50, but_main = 0xb83ee0, isLevelMenuSubmenu = true} #14 0x0000000000505410 in enigma::gui::PushButton::on_event ( this=0x7fffecaae670, e...@0x7fffffffe040) at gui/widgets.cc:734 was_pressed = <value optimized out> changed = <value optimized out> #15 0x00000000004fb283 in enigma::gui::Menu::manage (this=0x7fffffffe0e0) at gui/Menu.cc:71 e = {type = 6 '\006', active = {type = 6 '\006', gain = 0 '\0', state = 1 '\001'}, key = {type = 6 '\006', which = 0 '\0', state = 1 '\001', keysym = {scancode = 135 '\207', sym = SDLK_UNKNOWN, mod = KMOD_NONE, unicode = 0}}, motion = {type = 6 '\006', which = 0 '\0', state = 1 '\001', x = 391, y = 166, xrel = 0, yrel = 0}, button = {type = 6 '\006', which = 0 '\0', button = 1 '\001', state = 0 '\0', x = 391, y = 166}, jaxis = {type = 6 '\006', which = 0 '\0', axis = 1 '\001', value = 391}, jball = {type = 6 '\006', which = 0 '\0', ball = 1 '\001', xrel = 391, yrel = 166}, jhat = { type = 6 '\006', which = 0 '\0', hat = 1 '\001', value = 0 '\0'}, jbutton = {type = 6 '\006', which = 0 '\0', button = 1 '\001', state = 0 '\0'}, resize = {type = 6 '\006', w = 10879367, h = 0}, expose = {type = 6 '\006'}, quit = {type = 6 '\006'}, user = { type = 6 '\006', code = 10879367, data1 = 0x0, data2 = 0x0}, syswm = { type = 6 '\006', msg = 0x0}} enterTickTime = 783 menuTickDuration = <value optimized out> #16 0x00000000004f9001 in enigma::gui::ShowMainMenu () at gui/MainMenu.cc:383 m = {<enigma::gui::Menu> = {<enigma::gui::Container> = {<enigma::gui::Widget> = {<enigma::gui::ActionListener> = {_vptr.ActionListener = 0x5b6f90}, area = {x = 0, y = 0, w = 0, h = 0}, m_parent = 0x0, m_listener = 0x0, modifierKeys = 4294959455, mouseButton = 255 '�'}, <enigma::gui::AreaManaged> = { _vptr.AreaManaged = 0x5b7048}, m_widgets = {<std::_Vector_base<enigma::gui::Widget*, std::allocator<enigma::gui::Widget*> >> = { _M_impl = {<std::allocator<enigma::gui::Widget*>> = {<__gnu_cxx::new_allocator<enigma::gui::Widget*>> = {<No data fields>}, <No data fields>}, _M_start = 0xb5db90, _M_finish = 0xb5dbb8, _M_end_of_storage = 0xb5dbd0}}, <No data fields>}, managed_by = 0x7fffed26ce30}, active_widget = 0x7fffecaae670, quitp = false, abortp = false}, m_startgame = 0x7fffecaae670, m_levelpack = 0xb5c620, m_netgame = 0x1, leveled = 0x26400816000, manual = 0x81f6d8, options = 0xb5cab0, credits = 0xb5d320, quit = 0xae9440, lpack = 0x40a5f0} #17 0x000000000045eb3d in main (argc=<value optimized out>, argv=<value optimized out>) at main.cc:802 e = <value optimized out>
_______________________________________________ Enigma-devel mailing list Enigma-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/enigma-devel