DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(mysql.info.gz) Compiling for debugging

Info Catalog (mysql.info.gz) Debugging server (mysql.info.gz) Debugging server (mysql.info.gz) Making trace files
 
 E.1.1 Compiling MySQL for Debugging
 -----------------------------------
 
 If you have some very specific problem, you can always try to debug
 MySQL.  To do this you must configure MySQL with the `--with-debug' or
 the `--with-debug=full' option.  You can check whether MySQL was
 compiled with debugging by doing: `mysqld --help'.  If the `--debug'
 flag is listed with the options then you have debugging enabled.
 `mysqladmin ver' also lists the `mysqld' version as `mysql ... --debug'
 in this case.
 
 If you are using `gcc' or `egcs', the recommended `configure' line is:
 
      CC=gcc CFLAGS="-O2" CXX=gcc CXXFLAGS="-O2 -felide-constructors \
         -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql \
         --with-debug --with-extra-charsets=complex
 
 This will avoid problems with the `libstdc++' library and with C++
 exceptions (many compilers have problems with C++ exceptions in threaded
 code) and compile a MySQL version with support for all character sets.
 
 If you suspect a memory overrun error, you can configure MySQL with
 `--with-debug=full', which will install a memory allocation
 (`SAFEMALLOC') checker. However, running with `SAFEMALLOC' is quite
 slow, so if you get performance problems you should start `mysqld' with
 the `--skip-safemalloc' option. This will disable the memory overrun
 checks for each call to `malloc()' and `free()'.
 
 If `mysqld' stops crashing when you compile it with `--with-debug', you
 probably have found a compiler bug or a timing bug within MySQL.  In
 this case, you can try to add `-g' to the `CFLAGS' and `CXXFLAGS'
 variables above and not use `--with-debug'. If `mysqld' dies, you can
 at least attach to it with `gdb' or use `gdb' on the core file to find
 out what happened.
 
 When you configure MySQL for debugging you automatically enable a lot
 of extra safety check functions that monitor the health of `mysqld'.
 If they find something "unexpected," an entry will be written to
 `stderr', which `safe_mysqld' directs to the error log!  This also
 means that if you are having some unexpected problems with MySQL and
 are using a source distribution, the first thing you should do is to
 configure MySQL for debugging!  (The second thing is to send mail to a
 MySQL mailing list and ask for help.   Mailing-list.  Please use
 the `mysqlbug' script for all bug reports or questions regarding the
 MySQL version you are using!
 
 In the Windows MySQL distribution, `mysqld.exe' is by default compiled
 with support for trace files.
 
Info Catalog (mysql.info.gz) Debugging server (mysql.info.gz) Debugging server (mysql.info.gz) Making trace files
automatically generated byinfo2html