#### 5.9.1.1 编译 MySQL 进行调试

如果您有一些非常具体的问题，您可以随时尝试调试 MySQL。为此，您必须使用[`-DWITH_DEBUG=1`](source-configuration-options.html#option_cmake_with_debug)选项。您可以通过执行以下操作检查 MySQL 是否已通过调试进行编译：[**mysqld --帮助**](mysqld.html).如果[`--调试`](server-options.html#option_mysqld_debug)flag 与选项一起列出，然后您已启用调试。[**mysql管理员版本**](mysqladmin.html)还列出了[**mysqld**](mysqld.html)版本为[**mysql ... --调试**](mysql.html)在这种情况下。

如果[**mysqld**](mysqld.html)当您配置它时停止崩溃[`-DWITH_DEBUG=1`](source-configuration-options.html#option_cmake_with_debug)CMake 选项，您可能在 MySQL 中发现了编译器错误或计时错误。在这种情况下，您可以尝试添加`-g`使用[`CMAKE_C_FLAGS`](source-configuration-options.html#option_cmake_cmake_c_flags)和[`CMAKE_CXX_FLAGS`](source-configuration-options.html#option_cmake_cmake_cxx_flags)CMake 选项和不使用[`-DWITH_DEBUG=1`](source-configuration-options.html#option_cmake_with_debug).如果[**mysqld**](mysqld.html)死了，你至少可以用**数据库**或使用**数据库**在核心文件上找出发生了什么。

当您配置 MySQL 进行调试时，您会自动启用许多额外的安全检查功能来监控[**mysqld**](mysqld.html).如果他们发现“意外”的东西，则会将条目写入`标准错误`， 哪一个[**mysqld\_安全的**](mysqld-safe.html)指向错误日志！这也意味着，如果您在使用 MySQL 时遇到一些意想不到的问题并且正在使用源代码分发，那么您应该做的第一件事就是配置 MySQL 以进行调试。如果您认为自己发现了错误，请使用以下说明[第 1.6 节，“如何报告错误或问题”](bug-reports.html).

在 Windows MySQL 发行版中，`mysqld.exe`默认情况下编译时支持跟踪文件。
