当前位置: 首页 > news >正文

mysql源码编译启动debug

对于没有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;编译的时候有些文件引用 #include ,会引用这里,导致报错;
在这里插入图片描述

然后再修改 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

http://www.lryc.cn/news/416602.html

相关文章:

  • 吴恩达机器学习-C1W3L2-逻辑回归之S型函数
  • P-one新增火焰图-为性能测试开启新视野
  • CTF-web基础 TCP/UDP协议
  • sql常用语法总结
  • 实验八 题目描述 从键盘上输入任意一个整数(正负数皆可),判断该整数的绝对值是否为回文数。
  • IsaacLab | Workflow 中 rsl_rl 的 play.py 脚本精读
  • PYTHON专题-(8)我错了该怎么整?
  • 【自然资源】设施农业用地的学习梳理
  • 【秋招笔试】24-07-27-OPPO-秋招笔试题(后端卷)
  • JS 补充内容
  • H5+JS 4096小游戏
  • 常见中间件漏洞(二、WebLogin合集)
  • LeetCode LCR147.最小栈
  • 目标检测的算法有哪些
  • HDU多校-交通管控
  • 【C++】string类
  • Python中各类常用内置转换函数
  • LangChain与JWT:构建安全认证的桥梁
  • ai写作软件哪个好用?怎么帮自己找到好用的ai写作软件?
  • 关于gunicorn+flask+docker模型的高并发部署
  • 35. 搜索插入位置
  • ViT论文详解
  • 常见中间件漏洞(三、Jboss合集)
  • ios如何动态添加控件及动画
  • 【数学建模】——【A题 信用风险识别问题】全面解析
  • javascript:检测图片的宽高
  • 机械学习—零基础学习日志(高数23——无穷小运算)
  • 一个网络上计算机的通信
  • C语言基础题:吃冰棍(C语言版)
  • C++中,vector、deque、list、set、multiset、unordered_set和unordered_multiset容器类的总结