gdb工具对mysql进行源码调试

目前有很多文章描述如何源码调试MySQL,主要过程是通过源码编译一个Debug版的MySQL出来,然后使用gdb工具进行调试。

关于如何编译一个Debug的MySQL,过程比较繁琐,下载源码,安装c/c++开发环境,安装cmake等等,很容易出错,并且可能编译出来的版本与官方发行的版本,在编译选项和参数上存在不一致。

本文介绍一种更加简便的调试MySQL的方法。

一、下载MySQL Linux Generic版本

MySQL Linux Genric版本,解压即可使用,它的二进制文件mysqld本身包含符号表等调试信息,省去了我们自己编译MySQL Debug版本的烦恼。

二、安装gdb工具

在Linux上调试源码,gdb工具必不可少,本文示例是在CentOS 7.2系统上测试,安装gdb,通过yum命令安装即可。

yum install gdb

三、初始化MySQL实例

使用MySQL Linux Generic版本初始化数据库,启动MySQL。启动命令通常如下:

/usr/local/mysql/bin/mysqld_safe –defaults-file=/etc/my.cnf &

四、gdb调试MySQL

获取mysqld进程的pid,比如pid为4777gdb /usr/local/mysql/bin/mysqld 4777设置断点,比如在mysql_execute_command函数入口处设置断点,b mysql_execute_command在另一个终端连接到MySQL,执行SQL,比如:select * from tb1;在gdb会话终端,停在断点处,在gdb命令行执行命令:p thd->m_query_string,可以看到断点处,thd变量内部的成员变量记录着当前正在执行的SQL语句:select * from tb1。附图:

举报/反馈

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片