Compilando o MYSQL para Depuração


Se você tiver um problema específico, você sempre pode tentar depurar o MariaDB. Para fazer isto você deve configurar o MariaDB com a opção --with-debug ou --with-debug=full. Você pode verificar se o MariaDB foi compilado com depuração executando: mysqld --help. Se o parâmetro --debug estiver listado entre as opções então você têm a depuração habilitada. mysqladmin ver também lista a versão do mysqld como mysql ... --debug neste caso.

se você estiver usando gcc ou egcs, a configuração recomendada é:

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

Isto evitará problemas com a biblioteca libstdc++ e com exceções C++ (muitos compiladores têm problemas com exceções C++ no código da thread) e compila uma versão MariaDB com suporte para todos os conjuntos caracter.

Se você suspeita de um erro despejo de memória, você pode configurar o o MariaDB com --with-debug=full, que irá instalar verificar de alocação de memória (SAFEMALLOC). No entanto, a execução com SAFEMALLOC é um pouco lenta, assim se você tiver problemas de desempenho você deve iniciar o mysqld com a opção --skip-safemalloc. Isto disabilitará a verificação de despejo de momória para cada chamada a malloc() e free().

Se o mysqld parar de falhar quando você compilar com --with-debug, você provavelmente encontrou um erro de compilação ou erro de tempo dentro do MariaDB. Neste caso você pode tentar adicionar -g às variáveis CFLAGS e CXXFLAGS acima e não usar --with-debug. Se agora o mysqld morre, você pode pelo menos executá-lo com gdb ou usar o gdb no arquivo core para descobrir que aconteceu.

Quando você configura o MariaDB para depuração você habilita automaticamente diversas funções de vericação de segurança extra que monitora a saúde do mysqld. Se eles encontrarem algo inesperado, uma entrada será encrita no stderr, que mysqld_safe direciona para o log de erros! Isto também significa que se você estiver tendo alguns problemas inexperados com o MariaDB e estiver usando uma distribuição fonte, a primeira coisa que você deve fazer é configurar o MariaDB para depuração! (A segunda coisa é enviar uma mensagem para a lista de email do MariaDB e pedir ajuda. Leia "As Listas de Discussão do MariaDB". Por favor, use o script mysqlbug para todos os relatos de bug e questões referentes a versão do MariaDB que você está usando!

Na distribuição do MariaDB para Windows, mysqld.exe é, por padrão, compilado com suporte a arquivos trace.

Retornar