MySQL源码编译启动debug--InnoDB存储梳理(一)

对于没有C语言基础的同学来说,想看看源码,在搞定编辑器做debug的时候就被劝退了,发生点啥了,完全看不懂,不知道从哪里入手去做debug;我为了看看 mysql 的 insert buffer 到底存的是索引页还是数据页,花了几天时间搞明白,怎么用 clion 做debug调试。不懂的可以跟着一起动手搞起来。

macOS 12.4

c/c++ 编译器是 clang 13.0.0

Clion的版本是 2023.3.5

mysql 的源码版本 5.7.36

按照下图配置CMakeCMake这里的作用是根据 CMakeLists.txt来生成标准的构建文件Makefile
在这里插入图片描述

-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/Users/yuanjy/work_fz/boost -DCMAKE_BUILD_TYPE=Debug

源码是 mysql-server-mysql-5.7.36 版本,去 github 上下载。

这里要把源码中的 VERSION 改成 VERSION_1;编译的时候有些C代码中会引用 #include <version> ,不知道为啥会引用到这里,导致报错;
在这里插入图片描述

然后再修改 cmake/mysql_version.cmake 文件,修改引用的 VERSION 文件名;
在这里插入图片描述

如果已经存在 cmake-build-debug (自动构建生成的),把它删了,再重新构建一下
在这里插入图片描述

构建完成之后,在 1 这个位置应该出来了很多CMake Application;展开 2 这个位置,找到 mysqld;点击 debug 的按钮,他就会自动编译了,编译完成会启动mysqld,mysqld 编译后产生的位置在 cmake-build-debug/sql 下面
在这里插入图片描述

这个时候应该会启动失败,没有对应的 data 目录,看看打印的报错日志,看看指定的 data 目录在哪,创建一个这个目录,再执行 mysqld --initialize,最后一行有初始密码;用这个密码就可以登录 mysql 了

然后找到你要看的位置打个断点,就可以开始调试代码了
在这里插入图片描述

希望你能成功启动debug

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三书yjy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值