28.5.1.1 编译 MySQL 以进行调试

如果您遇到一些非常具体的问题,则可以随时尝试调试 MySQL。为此,您必须使用-DWITH_DEBUG=1选项配置 MySQL。您可以通过执行mysqld --help来检查 MySQL 是否已通过调试进行编译。如果选项中列出了--debug标志,则 table 明已启用调试。在这种情况下,mysqladmin ver还将mysqld版本列为MySQL 的--调试

如果使用-DWITH_DEBUG=1 CMake 选项配置mysqld时,它停止崩溃,则可能是您在 MySQL 中发现了编译器错误或计时错误。在这种情况下,您可以尝试使用CMAKE_C_FLAGSCMAKE_CXX_FLAGS CMake 选项添加-g而不使用-DWITH_DEBUG=1。如果mysqld死了,则至少可以使用 gdb 附加到该文件上,或者在核心文件上使用 gdb 找出发生了什么。

当您配置 MySQL 进行调试时,会自动启用许多额外的安全检查功能,以监视mysqld的运行状况。如果他们发现“意外”的内容,则会将一个条目写入stderr,该mysqld_safe会将其定向到错误日志!这也意味着,如果您在使用 MySQL 时遇到一些意外问题并且正在使用源代码分发,那么您应该做的第一件事就是配置 MySQL 进行调试。如果您认为自己已发现错误,请按照第 1.7 节“如何报告错误或问题”的说明进行操作。

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