mysql xcode_MySQL源码系列_Xcode调试

It was the best of times, it was the worst of times, it was the age of wisdom, it was the age of foolishness, it was the epoch of belief, it was the epoch of incredulity, it was the season of Light, it was the season of Darkness, it was the spring of hope, it was the winter of despair, we had everything before us, we had nothing before us, we were all going direct to Heaven, we were all going direct the other way.

-- 「双城记」

在应用层面工作的工程师在谈论到MySQL的时候,经常有一种熟悉又陌生的感觉。提到索引(B+树/Cardinality/主键索引/二级索引/联合索引),锁(lock/latch/记录锁/阻塞/死锁)和事务(redo/undo/事务隔离/分布式事务)等诸多概念的时候会觉得每个概念都在书中或者别人的博客里面读过原理,但具体到用代码如何实现,又往往感到无法深入。解决这个问题,我们需要经历信息的知识化过程,如下图。(当然后面还有一个大智慧化的过程啊哈哈哈哈)

21280c687b2a?from=timeline

Information->Knowledge->Wisdom

对于复杂的代码工程,我们知识化信息的手段当然是RTFSC(Read the Fucking Source Code:-)。当然源代码的含义不仅仅是一堆字符本身,它代表了背后的设计,算法和性能等诸多考虑。

这篇文章主要step-by-step介绍如何在mac上用Xcode来调试MySQL源代码。

我们需要准备的工具如下:

1. Xcode。AppStore上面搜索 Xcode,然后下载安装即可。整个过程耗时略长。

2. GDB。brew install GDB 即可。

3. Cmake。MySQL的编译是采用的Cmake ,官网直接下载安装即可。

4. MySQL源代码。推荐推荐Percona 版本或者Mariadb。Percona 或者 Mariadb。

以percona-server-5.6.24为例。Cmake的-G “Xcode”选项会生成Xcode的工程文件。

Cmake 之后,会生成一个xcodeproj的工程文件,使用xcode 打开就可以把mysql工程加入到 xcode了。cd  percona-server-5.6.24 && mkdir work && cmake . -G"Xcode"-DWITH_DEBUG=1-DWITH_TOKUDB_STORAGE_ENGINE=OFF-DWITHOUT_TOKUDB_STORAGE_ENGINE=ON-DCMAKE_INSTALL_PREFIX=/path-to/percona-server-5.6.24/work

在加入了Xcode之后,直接点击xcode的编译按钮就可以进行编译和build了,等完成之后会生成对应的二进制可执行文件。这个过程其实就是手工执行 make && make install的过程。但是 编译完成需要自己手工进行可执行文件的copy工作。cd work ; mkdir {bin,share,scripts,data} && cp sql/Debug/mysqld work/bin/ && cp client/Debug/mysql* work/bin/ && cp extra/Debug/my_print_defaults work/bin/ && cp -r sql/share/* work/share/ && cp -r scripts/* work/scripts/ && chmod +x work/scripts/* && cp scripts/*.sql  work/share/ && cp support-files/*.cnf work/share/

编辑mysqld的scheme,添加启动变量和env变量。

21280c687b2a?from=timeline

启动变量设置

然后运行mysqld。这时候就可以用mysql命令连到数据库上执行SQL语句了。

然后就可以随心所欲,设置断点,查看内存,网络,cpu,变量等各种信息啦。

21280c687b2a?from=timeline

调试

ENJOY

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值