一 如何根据gdb 调试mysql
1 安装gdb
2 gdb -p process_id
3 如何设置断点
1 在具体函数模块下设置 DBUG_ENTER("");
2 b 函数模块名称
3 bt
4 由于gdb会导致其他session操作卡住
1 设置next mysql从登录到执行sql都会被卡住,需要一段段进行调试
2 设置contine mysql登录需要执行c,如果没有断点就一直运行,不会阻塞登录后的任何操作,直到再次遇到断点操作
5 结束进程
kill -9 gdb 即可
6 生成core文件
使用'gcore core_name'命令生成coredump文件core_name。此命令会监控进程状态,然后捕捉异常,生成二进制文件
使用'detach'命令断开连接。
7 分析core文件
gdb core_name
8 常用命令 disass bt
mysql源码目录
1 sql目录 mysql大部分源码都存储在这里,包括main()函数,我们主要关注的就是这个
2 plugin目录 部分插件源码所在地,包括半同步复制
3 client目录 mysql客户端工具源码
mysql源码编译安装
由于线上版本的都是非debug模式,都是.so文件,所以需要一个环境重新编译安装
mysql 源码研究 ~ 调试和基本环境(初版)
猜你喜欢
转载自www.cnblogs.com/danhuangpai/p/11454498.html
今日推荐
周排行