如何在 Mac 下用 Clion 调试 MySQL 源码

栏目: 数据库 · Mysql · 发布时间: 5年前

内容简介:前面写了几篇文章来通过调试 MySQL 源码来分析死锁问题,有读者问如何用 IDE 调试源码,这篇文章简单介绍一下如何在 Mac 下调试。之所以使用调试的方式来分析死锁问题是因为在解决 MySQL 死锁的过程中比较纠结,就算找到了原因,也比较难说服自己原理就是书上或者网上博客里些的那样,所以就开始研究 MySQL 的源码,花了一些时间搭建了在 Clion 中调试源码的环境。整个过程其实非常简单也很顺利。Clion 是宇宙第二强的 IDE 公司 jetbrains 旗下的一款 C/C++ IDE 工具,我们做

前面写了几篇文章来通过调试 MySQL 源码来分析死锁问题,有读者问如何用 IDE 调试源码,这篇文章简单介绍一下如何在 Mac 下调试。

之所以使用调试的方式来分析死锁问题是因为在解决 MySQL 死锁的过程中比较纠结,就算找到了原因,也比较难说服自己原理就是书上或者网上博客里些的那样,所以就开始研究 MySQL 的源码,花了一些时间搭建了在 Clion 中调试源码的环境。整个过程其实非常简单也很顺利。

下载 Clion

Clion 是宇宙第二强的 IDE 公司 jetbrains 旗下的一款 C/C++ IDE 工具,我们做 Java 用的 IntelliJ IDEA、 Python 用的 PyCharm、 Go 用的 Goland 都是出自这家,很好很强大。 从下面的地址下载安装: www.jetbrains.com/clion/

编译安装 MySQL

这里选择的是 5.5 版本的源码,源码体积和编译速度比 5.7 的快太多,对于我们理解 MySQL 的原理没有太大的区别,所以这里选择了 5.5

# 1. 下载解压源码
wget https://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.62.tar.gz 
tar -xzvf mysql-5.5.62.tar.gz

# 2. 生成目录
// 生成编译后安装目录及数据目录
mkdir -p build_out/data

# 3.编译
cmake . -DWITH_DEBUG=1 \
-DCMAKE_INSTALL_PREFIX=build_out \
-DMYSQL_DATADIR=build_out/data
make && make install

# 4. 初始化 mysql 数据库
cd build_out
scripts/mysql_install_db
复制代码

Clion 配置

1.配置 Cmake,内容如下图

如何在 Mac 下用 Clion 调试 MySQL 源码
2.配置mysqld的启动参数,指定读取的配置文件路径 --defaults-file=/path/to/my.cnf

一个可参考的 my.conf 配置如下

[mysqld]  
log-error=log.err
datadir=data
pid-file=user.pid
skip-grant-tables
innodb_file_per_table=1
port=33060
transaction_isolation = READ-COMMITTED

[client]
# 客户端来源数据的默认字符集
default-character-set = utf8mb4
[mysqld]
# 服务端默认字符集
character-set-server=utf8mb4
# 连接层默认字符集
collation-server=utf8mb4_unicode_ci
[mysql]
# 数据库默认字符集
default-character-set = utf8mb4
复制代码

点击 debug 按钮进行调试

如何在 Mac 下用 Clion 调试 MySQL 源码

ps:注意 mysqld 所在的列表不是按字母序来 排序 的,拼命往下拉就可以找到了。

不出意外这个时候,MySQL 就启动起来了,监听了我们上面设置的 33060 端口,用 MySQL 的客户端就可以正常连接上去了(账号 root,密码空)

Cion 可以非常方便的断点单步调试和查看变量的值,比如我们在 sql_parse.ccdo_command 函数打一个断点,随便执行一个 sql 语句就可以看到单步调试到了这里

如何在 Mac 下用 Clion 调试 MySQL 源码

到此 MySQL 源码编译调试的过程基本就讲完了,后面会有更多用调试来解决一些具体问题的案例,尽请期待。如果有什么问题可以留言或者加微信沟通。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

区块链

区块链

长铗、韩锋 / 中信出版社 / 2016-7 / CNY 58.00

《区块链:从数字货币到信用社会》从历史与背景、发展现状、基础原理与技术、应用生态、存在的问题与挑战等方面论述了区块链是怎样立起来的,为什么人人都在谈论区块链,区块链的秘密在哪里、进阶区块链(第二代区块链技术)是什么,区块链怎么玩,怎样从信息互联网走向价值互联网,如何用法规约束和监管区块链,区块链走向何处、争议与挑战,并通过经济、金融、货币、法律、科技哲学等角度来加以分析区块链在各个方面遇到的问题和......一起来看看 《区块链》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具