1、准备工作
2、注意事项
3、源码编译
C:\MySQLSC\strings\ctype-czech.c
C:\MySQLSC\strings\ctype-latin1.c
C:\MySQLSC\strings\decimal.c
C:\MySQLSC\mysys\thr_mutex.c
c:\mysqlsc\storage\innobase\include\ut0mem.h
C:\MySQLSC\sql\sql_locale.cc
找到mysqld.cc中的test_lc_time_sz()函数,直接注释函数体,或者把DBUG_ASSERT(0);改为DBUG_ASSERT(1);
最后生成,一共有130个工程,成功122个,跳过8个。
4、调试过程
首先将mysqld工程的Debug的:属性->调试->命令参数,设为--console。然后启动实例,右键mysqld工程,调试->启动新实例。或者设置mysqld为启动项。或者进入D:\mysql\mysql-5.7.4-m14\bld\sql\Debug 输入命令 mysqld --debug --standalone, 这时3306端口开启侦听(用netstat -anp tcp)。
- 调试show databases;命令
在VS2013中的调试选项中的附加到进程,选择"mysqld.exe";
进入D:\mysql\mysql-5.7.4-m14\sql\sql_show.cc 的make_db_list方法中设一个断点;
然后进入D:\mysql\mysql-5.7.4-m14\bld\client\Debug,输入命令 mysql -u root -p ;
进入mysql命令行客户端,在mysql命令行客户端,输入命令show databases;就会跳到vs2013中设定的断点处。
- 调试sql语句执行过程,比如select语句