目前有很多文章描述如何源码调试MySQL,主要过程是通过源码编译一个Debug版的MySQL出来,然后使用gdb工具进行调试。
关于如何编译一个Debug的MySQL,过程比较繁琐,下载源码,安装c/c++开发环境,安装cmake等等,很容易出错,并且可能编译出来的版本与官方发行的版本,在编译选项和参数上存在不一致。
本文介绍一种更加简便的调试MySQL的方法。
一、下载MySQLLinuxGeneric版本
MySQLLinuxGenric版本,解压即可使用,它的二进制文件mysqld本身包含符号表等调试信息,省去了我们自己编译MySQLDebug版本的烦恼。
二、安装gdb工具
在Linux上调试源码,gdb工具必不可少,本文示例是在CentOS7.2系统上测试,安装gdb,通过yum命令安装即可。
yuminstallgdb
三、初始化MySQL实例
使用MySQLLinuxGeneric版本初始化数据库,启动MySQL。启动命令通常如下:
/usr/local/mysql/bin/mysqld_safe--defaults-file=/etc/my.cnf
四、gdb调试MySQL
获取mysqld进程的pid,比如pid为gdb/usr/local/mysql/bin/mysqld设置断点,比如在mysql_execute_