调试和观察mysqld server源码的运行

概述

mysqld的源码十分的庞大,模块很多,本文讲述如何通过gdb来调试和观察mysqld源码的运行。

下载mysql server源码

  • 从这里下载想要调试的mysql server源码
http://downloads.mysql.com/archives.php

下载boost

$ wget http://dl.bintray.com/boostorg/release/1.68.0/source/boost_1_68_0.tar.gz
$ tar xzvf boost_1_68_0.tar.gz

编译前的配置

进入源码文件夹,在执行配置命令时添加–with-debug选项

$ cd mysql-8.0.14
$ mkdir build
$ cd build
$ cmake .. -DDOWNLOAD_BOOST=1 -DWITH_DEBUG=1 -DWITH_BOOST=/xxx/mysql-8.0.14/boost_1_68_0/
#若没有其他错误说明成功了,可以编译了
$ make

在编译的时候看到gcc … -g -DDEBUG_ON的选项就说明可以用gdb进行调试

创建配置文件:my.cnf

创建mysql server的配置文件my.cnf,并对其进行配置

$ cp my.cnf /etc/my.cnf

开始调试

$ gdb ./mysqld
$ gdb)b my_net_read     # 在给定函数上打断点
$ gdb)n                 # 执行下一条语句

客户端进行连接

客户端开始连接,并输入命令,此时服务器端输入命令n继续往下执行。可以进行单步调试了。

多进程的调试

若遇到fork调用,说明要生成子进程,此时可以通过设置变量来决定是跟踪子进程还是父进程的运行。

gdb) set follow-fork-mode child

总结

本文讲述如何通过gdb来调试mysql server的源代码,从而来观察mysql server的运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值