一直想要阅读MySQL源代码,但是使用古老的gdb命令行实在稍微痛苦了点,在网上搜索了一下,发现mysql源代码使用cmake编译,于是借助cmake这个伟大的工具,终于实现了在mac下使用xcode调试mysql的方法。
最主要命令:
cmake . -G "Xcode" -DWITH_DEBUG=1 -DCURSES_INCLUDE_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/ -DCMAKE_INSTALL_PREFIX=/data1/mysql -DMYSQL_DATADIR=/data1/mysql/data
命令比较简单,直接在源代码目录下执行就可以了。
执行完成后会在源代码目录下生成xcode的工程文件,之后使用xcode打开就可以了,直接运行xcode的编译编译完成。
麻烦的工作在下面:
1,生成测试数据库。
首先make,make install之类命令行用不了,直接导致的后果之一就是必须手动把生成的一系列文件自己复制到安装目录。(注:mysql编译出来的文件散落在源代码文件各处,需要手动复制成mysql的目录结构)
在mysql文件夹下,新建bin,share,scripts,data文件夹。
把sql目录里的mysqld,client目录里面的mysql*,extra里面的my_print_defaults复制到bin目录下。
把sql目录的share目里面所有内容复制到share目录。
把scripts目录的所有内容复制到scripts目录,对scripts下的可执行文件执行chmod +x,然后把scripts里面的*.sql复制到share目录。
把support-files里面的my-default.cnf复制到share目录。
在mysql目录下执行./scripts/mysql_install_db就可以生成数据库了。
2,启动数据库。
有两种方式:一种是在xcode里面设置启动,然后调试,一种是在命令行启动,然后使用xcode调试,都没有问题,需要注意的是如果重新编译了不涉及数据文件格式的修改的版本,需要启动的是源代码目录sql下的mysqld。
然后开始享受mysql代码的调试吧。