问
我们在第16问中使用过 mysql 内置的调试版本 mysqld-debug ,但有些 MySQL 版本中没有内置的调试版本....这次介绍一下如何编译一个调试版本
实验
我们先准备一个安装了 docker 的环境, 之所以用容器, 是因为我们在进行各种试验后, 可以将容器毁掉重建, 保持系统环境干净统一, 非常便利....在配置环节, cmake 命令中, 将 -DWITH_DEBUG=1 换成 -DBUILD_CONFIG=mysql_release 即可
我们为什么需要调试版本的 MySQL 呢?...在第35问中, 我们使用过 gdb 调试器, 用于限制 MySQL 的行为, 来研究相关机制.
MySQL 在编译时, 会进行一些优化, 会将一些调试信息抹掉以提高性能....这些被抹掉的调试信息是我们使用调试器时所需要的.
我们自己编译了调试版本的 MySQL, 就有了这些信息的加持, 我们就能使用更多的调试手段.