ubuntu 环境下调试mysql源码_使用eclipse调试mysql源码

操作系统Ubuntu10.04

编译调试工具:gcc、g++、make、cmake、autoconf、gdb、eclipse、eclipse cdt等。

1、  编译调试工具安装

gcc、g++、make、cmake等工具可以通过apt-get安装,也可以通过ubuntu包管理器进行安装。

由于使用GUI工具比较方便调试和阅读代码,使用eclipse+cdt进行调。

Eclipse和CDT的配置比较简单,下载CDT安装包,在eclipse中菜单栏中选择Help->Install New Software->Add->Archive,加载刚下载的CDT包,重启启动eclipse即可。(注意eclipse和cdt版本最好严格一致,保证不出出错)。

2、  源码编译安装mysql

不同的地方是编译配置参数有点不同:

1)   CFLAGS=”-g –O0″ CXX=gcc CXXFLAGS=”-g –O0 -felide-constructors -fno-exceptions -fno-rtti”,-g选项中不使用gcc编译优化,即优化级别为-O0。

2)   cmake时使用-DWITH-DEBUG=1。这个可能与上面的的设置有重复的操作。

配置编译参数如下:

CFLAGS="-g –O0"

CXX=gcc CXXFLAGS="-g –O0 -felide-constructors -fno-exceptions -fno-rtti"

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql   -DDEFAULT_CHARSET=utf8   -DDEFAULT_COLLATION=utf8_general_ci  -DWITH_DEBUG=1

make

make install

编译安装之后,需要调用安装目录(/usr/local/mysql)下面的scripts/mysql_install_db初始化数据库,否则在调试mysqld过程中出现很多错误。同时mysql_install_db也可以指定mysql的my.cnf、basedir和datadir等参数。如下,

./mysql_install_db  --user=mysql --defaults-file=/etc/my.cnf --datadir=/home/sylar/Downloads/mysql-5.6.15/win/data --basedir=/home/sylar/Downloads/mysql-5.6.15/win

basedir和datadir参数需要注意它们的权限,否则mysqld信息中显示permission denied。这些编译和初始化过程和你平时用源码安装mysql的过程基本一致,除了上面提到的两点。

3、  eclipse编译与调试配置

1)在eclipse中建立一个c++ empty project。

2)选中上面建立的project,新建文件夹,引入代码。

3)设置编译源目录Build directory,即cmake生成的Makefile所在的目录。

之前已经make过了,如果修改了源代码,可以使用之前生成的Makefile文件进行重新编译。设置如下,

有人也是用源码目录下面的“BUILD/compile-pentium-debug-max-no-ndb –c”进行生成Makefile文件。但是在5.5开始,都是用cmake。

由于之前通过make编译过了,可以不用重新编译源码,直接进行调试。为了检验上面的目录是否配置正确,可以使用eclipse重新编译mysql源码,编译时间可能有点长。

4)调试mysqld

注意启动mysqld需要指定数据库文件和日志文件的存放目录。可也通过指定默认的配置文件或者直接指定datadir、basedir等参数。

再啰嗦一句,上面的basedir和datadir参数指定的数据存放目录一定要有mysql用户读写权限,否则根本不能启动mysqld。

配置上面的等参数之后,可以开始调试源代码文件。

找到sql/main.cc文件中的main()函数,就可以设置断点,跟踪代码的执行过程。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值