摘要:前面写了几篇文章来通过调试源码来分析死锁问题,有读者问如何用调试源码,这篇文章简单介绍一下如何在下调试。下载是宇宙第二强的公司旗下的一款工具,我们做用的用的用的都是出自这家,很好很强大。如果有什么问题可以留言或者加微信沟通。
前面写了几篇文章来通过调试 MySQL 源码来分析死锁问题,有读者问如何用 IDE 调试源码,这篇文章简单介绍一下如何在 Mac 下调试。
之所以使用调试的方式来分析死锁问题是因为在解决 MySQL 死锁的过程中比较纠结,就算找到了原因,也比较难说服自己原理就是书上或者网上博客里些的那样,所以就开始研究 MySQL 的源码,花了一些时间搭建了在 Clion 中调试源码的环境。整个过程其实非常简单也很顺利。
下载 ClionClion 是宇宙第二强的 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,内容如下图
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 按钮进行调试
ps:注意 mysqld 所在的列表不是按字母序来排序的,拼命往下拉就可以找到了。
不出意外这个时候,MySQL 就启动起来了,监听了我们上面设置的 33060 端口,用 MySQL 的客户端就可以正常连接上去了(账号 root,密码空)
Cion 可以非常方便的断点单步调试和查看变量的值,比如我们在sql_parse.cc的do_command函数打一个断点,随便执行一个 sql 语句就可以看到单步调试到了这里
到此 MySQL 源码编译调试的过程基本就讲完了,后面会有更多用调试来解决一些具体问题的案例,尽请期待。如果有什么问题可以留言或者加微信沟通。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/6831.html
摘要:来验证下命令小结编译版需要的命令下载全部源代码编译阅读和调试代码我们使用编译了源代码,目录下会生成等调试信息文件。使用使用命令行工具太原始了,下阅读和调试更加方便。 原文:http://nullwy.me/2018/02/buil...如果觉得我的文章对你有用,请随意赞赏 编译 OpenJDK 关于编译 OpenJDK 官方文档有很好的介绍,http://openjdk.java.ne...
摘要:占用率太高,还出各种奇怪问题,转投调试安装下载源代码漫长等待,中间无数次中断安装安装可选如果要使用解释器,需要安装设置调试级别,设成可以提供更多的调试信息设置路径 Intellij CLion CPU 占用率太高,还出各种奇怪问题,转投 Xcode 调试 hotspot 安装 hg # brew install hg 下载 open jdk 9 源代码 # hg clone http...
摘要:很老的了,不推荐使用结尾目前就介绍这些另外不建议新手使用编辑器编译器的组合如等,新手的首要任务是要入门,了解和熟悉的语法,而不是在一个工具上折腾,这样就本末倒置了,望周知。这里采用的是,下一篇会介绍的环境配置希望和你们一起努力变好,加油 目录 IDE和编译器的分类 编译器 IDE 如何选择...
摘要:经常不断的遇到在上使用这个包管理神器安装出问题,今天在百度谷歌上搜索资料解决方案今天总算解决掉了,把这个解决方案分享出来我的系统是准备安装的是开始之前,假设你的已经安装好并可以使用。 经常不断的遇到在mac上使用brew这个包管理神器安装mysql出问题,今天在百度谷歌上搜索资料解决方案今天总算解决掉了,把这个解决方案分享出来 我的系统是 Mac OS X 10.12,准备安装的是 m...
摘要:经常不断的遇到在上使用这个包管理神器安装出问题,今天在百度谷歌上搜索资料解决方案今天总算解决掉了,把这个解决方案分享出来我的系统是准备安装的是开始之前,假设你的已经安装好并可以使用。 经常不断的遇到在mac上使用brew这个包管理神器安装mysql出问题,今天在百度谷歌上搜索资料解决方案今天总算解决掉了,把这个解决方案分享出来 我的系统是 Mac OS X 10.12,准备安装的是 m...
阅读 2324·2023-04-26 01:00
阅读 3789·2021-11-16 11:39
阅读 477·2021-10-11 10:59
阅读 2829·2019-08-30 11:18
阅读 2563·2019-08-29 11:18
阅读 904·2019-08-28 18:28
阅读 2901·2019-08-26 18:36
阅读 1974·2019-08-23 18:16