使用CLion编译调试MySQL

环境准备

  1. mac os
  2. Clion (一款C++IDE开发工具)
  3. Mysql 8.0 源码 (下载地址:https://github.com/mysql/mysql-server)

编译MySQL服务端

导入源码到Clion

  1. 通过"New Cmake Project from Sources"打开mysql源码
image.png
  1. 选择"Open Existing Project"
image.png

配置cmake

打开cmake配置页面: clion -> Preferences -> Build,Execution,Deployment -> CMake

image.png

CMake options配置如下:

-DWITH_DEBUG=1
-DDOWNLOAD_BOOST=1
-DDOWNLOAD_BOOST_TIMEOUT=60000
-DWITH_BOOST=/usr/local/Cellar/boost

Generation path : 编译时生成的文件,存放此路径下

因此编译生成的mysqld文件,存放在cmake-build-debug/bin路径下

运行cmake

点击 File -> Reload CMake Project

image.png

编译 and 初始化mysql

点击右上角的 Edit Configurations...

image.png

找到mysqld,并配置Program arguments

image.png
--basedir=/Users/haolong/Desktop/test/mysql
--datadir=/Users/haolong/Desktop/test/mysql/data
--initialize-insecure

保存配置后,点击debug按钮(下图箭头所指),进行编译和初始化mysql数据目录

image.png

首次编译,比较慢,耐心等待即可。编译成功后,控制点会输出如下内容

image.png

运行mysqld

  1. 修改mysqld的Program arguments配置

    删除最后一行,保留之前的配置即可,如下图所示

image.png
  1. 点击debug按钮,控制台输出如下,表示mysql服务端启动成功
image.png

连接MySQL服务端

编译mysql命令

点击"Edit Configurations..."

image.png

找到"mysql"(注意不是mysqld),点击ok按钮

image.png

点击debug按钮,编译mysql

image.png

编译后,控制台可能有如下ERROR日志,不用理会,我们的目的是生成mysql文件

image.png

设置断点

在clion中,对row0mysql.cc类的row_insert_for_mysql_using_ins_graph方法设置断点

当执行insert语句时,就会进入此断点

连接服务端

还记得去哪里找编译生成的mysql文件吧?

当然是配置cmake时,指定的Generation path目录

然后进入此目录,登录mysql命令行

cd /Users/haolong/Desktop/test/mysql-server-8.0/cmake-build-debug

bin/mysql -u root

然后:执行插入语句,即可跳入断点

image.png

参考资料

在Mac上使用CLion编译MySQL

CMake 入门实战

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、window 系统终端命令基础安装 win+r 打开终端 :cmd中进行安装: mysqld -install...
    SHARE李阅读 3,973评论 0 0
  • HyperLedger Fabric 模块入门 这篇博客作为最近一段时间对 hyperledger 官方文档学习的...
    Vanishing_15d0阅读 4,093评论 0 0
  • 雪苏醒 诗/图:远心 1 比想得更好一些 在雪到来之前,已经下雪了 星星们藏起来 半个月亮遮着面纱 天空一无所有 ...
    远心笃行阅读 1,657评论 0 0
  • 办公室的已婚男女在中午一起吃饭时经常会由其它任何事牵扯到男女情爱出轨等或荤或素的一些事上。虽为谈资但也内里说明着当...
    山贼爷阅读 2,635评论 0 3
  • 偶然见到一个孩子。 在读大学生,97年生,外貌清秀,戴副眼镜,文质彬彬。据他自己介绍家庭条件优厚,在他们居住的那个...
    梦忆蔷薇阅读 2,299评论 0 1