# MySQL Workbench is crashing on start (SEGV)



## kenorb (Nov 15, 2010)

```
> gdb /usr/local/bin/mysql-workbench-bin
(gdb) run
Starting program: /usr/local/bin/mysql-workbench-bin 
(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...[New LWP 100301]
[New Thread 80ad021c0 (LWP 100301)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 80ad021c0 (LWP 100301)]
0x000000000058687f in main ()
```
Why?;(

P.S. I'll try to re-compile with debug symbols soon


----------



## kenorb (Nov 15, 2010)

```
(gdb) bt full
#0  0x0000000808da5d12 in std::string::operator= () from /usr/lib/libstdc++.so.6
No symbol table info available.
#1  0x000000000070a87a in main (argc=1, argv=0x7fffffffe768) at main.cpp:113
	i = 1
	wboptions = {basedir = {static npos = 18446744073709551615, 
    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x808f20218 ""}}, plugin_search_path = {
    static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
      _M_p = 0x808f20218 ""}}, struct_search_path = {static npos = 18446744073709551615, 
    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x808f20218 ""}}, module_search_path = {
    static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
      _M_p = 0x808f20218 ""}}, library_search_path = {static npos = 18446744073709551615, 
    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x808f20218 ""}}, 
  cdbc_driver_search_path = {static npos = 18446744073709551615, 
    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x808f20218 ""}}, user_data_dir = {
    static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
      _M_p = 0x808f20218 ""}}, open_at_startup = {static npos = 18446744073709551615, 
    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x808f20218 ""}}, 
  force_sw_rendering = false, force_opengl_rendering = false, use_log_file = false}
	disp = (Glib::Dispatcher *) 0x7fffffffe700
	splash_pid = 0
	app = {<sigc::trackable> = {callback_list_ = 0x800cd9000}, _vptr$Main = 0x7fffffffe5d0, static signal_run_ = {<No data fields>}, 
  static signal_quit_ = {<No data fields>}, static signal_key_snooper_ = {<No data fields>}, static instance_ = 0x0}
	program = {_wb_context_ui = 0xe0fc58, _wb_context = 0x1f, _grt_manager = 0x1000, _main_form = 0x0, _idle_signal_conn = {slot_ = 0x0}, static _instance = 0x0}
```

Should I do debug symbols for /usr/lib/libstdc++.so.6 as well? How?

```
> pkg_info -W /usr/lib/libstdc++.so.6
(no entries)
```


----------



## kenorb (Nov 15, 2010)

Backtrace with debug symbols:

```
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 80b4021c0 (LWP 100306)]
0x00000008092c05b7 in strlen () from /lib/libc.so.7
(gdb) bt full
#0  0x00000008092c05b7 in strlen () from /lib/libc.so.7
No symbol table info available.
#1  0x0000000808dc9bc1 in std::char_traits<char>::length (__s=0x0) at char_traits.h:258
No locals.
#2  0x0000000808dcbe15 in std::string::assign (this=0x7fffffffe4b0, __s=0x0) at basic_string.h:920
No locals.
#3  0x0000000808dcbe45 in std::string::operator= (this=0x7fffffffe4b0, __s=0x0) at basic_string.h:499
No locals.
#4  0x000000000070a87a in main (argc=1, argv=0x7fffffffe768) at main.cpp:113
	i = 1
	wboptions = {basedir = {static npos = 18446744073709551615, 
    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x808f3b0b8 ""}}, plugin_search_path = {
    static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
      _M_p = 0x808f3b0b8 ""}}, struct_search_path = {static npos = 18446744073709551615, 
    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x808f3b0b8 ""}}, module_search_path = {
    static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
      _M_p = 0x808f3b0b8 ""}}, library_search_path = {static npos = 18446744073709551615, 
    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x808f3b0b8 ""}}, 
  cdbc_driver_search_path = {static npos = 18446744073709551615, 
    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x808f3b0b8 ""}}, user_data_dir = {
    static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
      _M_p = 0x808f3b0b8 ""}}, open_at_startup = {static npos = 18446744073709551615, 
    _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x808f3b0b8 ""}}, 
  force_sw_rendering = false, force_opengl_rendering = false, use_log_file = false}
	disp = (Glib::Dispatcher *) 0x7fffffffe700
	splash_pid = 0
	app = {<sigc::trackable> = {callback_list_ = 0x80b474b10}, _vptr$Main = 0x808e0a070, static signal_run_ = {<No data fields>}, 
  static signal_quit_ = {<No data fields>}, static signal_key_snooper_ = {<No data fields>}, static instance_ = 0x0}
	program = {_wb_context_ui = 0x7fffffffe530, _wb_context = 0x808d91e2f, _grt_manager = 0x8, _main_form = 0x8, _idle_signal_conn = {slot_ = 0xaf714b}, 
  static _instance = 0x0}
```

The closest crash which I found:
http://thedailyreviewer.com/compsys/view/wxgtk-252-gtk2-stl-crash-11154158

Source:

```
#2  0x0000000808dcbe15 in std::string::assign (this=0x7fffffffe4b0, __s=0x0) at basic_string.h:920
      /**
       *  @brief  Set value to contents of a C string.
       *  @param s  The C string to use.
       *  @return  Reference to this string.
       *
       *  This function sets the value of this string to the value of @a s.
       *  The data is copied, so there is no dependence on @a s once the
       *  function returns.
       */
      basic_string&
      assign(const _CharT* __s)
      {
  __glibcxx_requires_string(__s);
  return this->assign(__s, traits_type::length(__s));
#1  0x0000000808dc9bc1 in std::char_traits<char>::length (__s=0x0) at char_traits.h:258
      static size_t
      length(const char_type* __s)
      { return strlen(__s); }
```
It just trying to check the lenght of __s which is NULL. Why?

Similar crash:
http://bugs.gentoo.org/show_bug.cgi?id=343995


----------



## kenorb (Nov 15, 2010)

Reported new BUGs:
http://bugs.mysql.com/bug.php?id=58209
http://www.freebsd.org/cgi/query-pr.cgi?pr=152293

Thanks for patience


----------



## DutchDaemon (Nov 17, 2010)

This topic has been closed. Issues as technical or detailed as this should not be discussed in general user-oriented forums like The FreeBSD Forums. These forums are intended for end-user support with installing and/or running FreeBSD and/or applications from the ports tree, not for routinely resolving low-level problems with the operating system or add-on applications. Developers and port maintainers usually do not spend much time here, and we routinely refer technically detailed questions to them.

Consider opening this topic elsewhere, e.g.:

In the case of *the FreeBSD base system*:

1) by posting to one of the relevant mailing lists
2) by opening a bug report

In the case of *ported applications*:

1) by contacting the port maintainer (run make maintainer in the port directory)
2) by opening a bug report


----------

