关于编译:第39问如何编译-MySQL-的调试版本

7次阅读

共计 711 个字符,预计需要花费 2 分钟才能阅读完成。

咱们在第 16 问中应用过 mysql 内置的调试版本 mysqld-debug,但有些 MySQL 版本中没有内置的调试版本.

这次介绍一下如何编译一个调试版本

试验

咱们先筹备一个装置了 docker 的环境, 之所以用容器, 是因为咱们在进行各种试验后, 能够将容器毁掉重建, 放弃零碎环境洁净对立, 十分便当.

首先开启一个 devtoolset 容器:

确认本人在容器内:

下载 MySQL 源码包并解压:

接下来装置依赖包, 一共分为 3 类依赖: 编译用的工具, MySQL 的依赖包, 以及开启 DTRACE 调试性能用的依赖包

(DTRACE 调试性能 咱们当前会介绍)

创立一个 build 目录, 之后 MySQL 会将编译的过程文件和后果都放在这个文件夹里:

对编译进行配置:

在一大段输入后, 能够看到配置胜利的信息:

当初能够正式编译了:

通过漫长的五彩斑斓的输入, 编译顺利胜利:

在 build/sql 文件夹中, 曾经造成了调试版的 mysqld :

小贴士

如何像官网一样编译正式的 MySQL ?

在配置环节, cmake 命令中, 将 -DWITH_DEBUG=1 换成 -DBUILD_CONFIG=mysql_release 即可

咱们为什么须要调试版本的 MySQL 呢?

在第 35 问中, 咱们应用过 gdb 调试器, 用于限度 MySQL 的行为, 来钻研相干机制.

MySQL 在编译时, 会进行一些优化, 会将一些调试信息抹掉以进步性能. 这些被抹掉的调试信息 是 咱们应用调试器时所须要的.

咱们本人编译了调试版本的 MySQL, 就有了这些信息的加持, 咱们就能应用更多的调试伎俩.

当然, 保留了调试信息, 就意味着运行性能会降落, 所以 MySQL 的调试版本不能用来做性能测试.


对于 MySQL 的技术内容,你们还有什么想晓得的吗?连忙留言通知小编吧!

正文完
 0