mysql 源码研究 ~ 调试和基本环境(初版)

一 如何根据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文件,所以需要一个环境重新编译安装

猜你喜欢

转载自www.cnblogs.com/danhuangpai/p/11454498.html