作者:柯煜昌 顾问软件工程师
目前从事 RadonDB MySQL 容器化研发,华中科技大学研究生毕业,有多年的数据库内核开发经验。
掌握 MySQL 内核源码的阅读和调试能力,不仅是数据库研发人员的日常,也是 DBA 进阶的必经之路。
阅读本文你将了解:
- 如何准备 MySQL 调试环境
- GDB 调试入门及操作示例
- Trace 文件调试及操作示例
| 一、准备 Debug 环境
首先用源码编译安装一个用来调试的 MySQL 环境。
开启 -DWITH_DEBUG
,在源码路径创建 build
目录,进入目录并执行:
cmake .. -DWITH_BOOST=../../boost -DWITH_DEBUG=1
然后通过如下方式,确认是否编译成功。
方式一:
$ ./bin/mysqld --verbose --version
回显 debug 版本信息,则编译的是 debug 版本。
ver 8.0.18-debug for Linux on x86_64 (Source distribution)
方式二:
连接数据库,执行查看版本命令。回显包含了 debug 字样,则编译的是 debug 版本。
$ mysql> select version();
+--------------+
| version() |
+--------------+
| 8.0.18-debug |
+--------------+
1 row in set (0.00 sec)
| 二、使用 GDB 调试
GDB 全称 “GNU symbolic debugger”,是 Linux 下常用的程序调试器,通常以 gdb 命令的形式在终端(Shell)中使用。
启动 GDB 编译器
执行如下命令启动 GDB 编译器(假设 <