zoukankan      html  css  js  c++  java
  • MySQL5.7.13源代码阅读心得

    1.使用gdb这个调试工具。

    在linux使用该调试工具非常简单。它的价值非常大,可以告诉你函数相互调用的逻辑(bt命令),告诉你函数执行的情况(通过br命令以及n,c命令单步跟踪函数每一个语句的执行),告诉你每个函数变量的值(p命令)。

    (1)首先打开mysql服务器 ./mysqld

    (2)重新开始一个客户端,打入mysql -uroot -p,输入密码进入mysql,以下称mysql客户端

    (3)重新开始一个客户端,打入ps -ef|grep mysql找出mysql的pid,以下称gdb客户端

       这里mysql的pid是32047,因此打入命令gdb --pid 32047,进入gdb调试界面

    (4)设置断点 br  table_global_status::rnd_init

    (5)回到mysql客户端,打入show global status

    (6)回到gdb客户端,打入c命令,然后我们可以看到程序在我们想要的位置停下,

    (7)接下来我们就可以使用bt命令查看

    (8)接着可以使用p命令,n命令都可以用来调试相应的代码

    2.使用好的文件阅读工具,我用的是subline text 3,相信大多数的前端同学都会使用这个工具

    可以进行全局搜索,比如对于show global status的命令可以搜索show_global_status,因为mysql好像采用的是谷歌命名法就有意想不到的收获

    3.查看mysql代码可以通过文件名字判断mysql代码的功能。

    最后不得不吐槽下mysql代码虽然写的更好,但是还是比较坑爹,他还是大量地使用了函数指针来简化他的代码,使我们这些读代码的人比较困惑。。。。

  • 相关阅读:
    【转】Visual Studio 选择相同变量高亮
    匿名委托(方法) 以 ThreadStart 为例
    执行多个Sql脚本,Sqlplus
    【转】Win8 下 管理无线网络
    ORA-22992:没法使用从远程表选择的LOB定位器
    【转】NET中管理数字证书(Digital Certificate)的一些类
    修改数据库内存
    C# 计算一串字符串算法
    奇数平方的九宫格
    lua 的一些常用概念
  • 原文地址:https://www.cnblogs.com/onlyac/p/5776311.html
Copyright © 2011-2022 走看看