1.源码编译,加debug参数
cmake
-Dxxx
-Dxxx
-Dxxx
-DWITH_DEBUG=1
2.debug模式启动
mysqld --debug --console &
3.找到MySQL的PID
ps -ef|grep mysqld
mysql5.7 21001 1 2 20:30 pts/3 12:10:11 mysqld --debug --console
4.打开trace文件
tail -f /tmp/mysqld.trace
可以看到,任何在MySQL的操作,调用的函数信息都记录在这个trace文件中.
找到其中任意一行,比如 PROFILING::status_change
5. gdb调试
gdb --pid 21001 --tui
6.打断点
break PROFILING::status_change
7.打开另一个终端,执行sql,即可进行调试