当前位置:   article > 正文

GDB 调试 MySQL 源码

GDB 调试 MySQL 源码

在窗口 1 中使用 GDB 启动 MySQL

  1. // /usr/local/mysql80/bin/mysqld --defaults-file=/home/mysql80/my80.cnf 为 MySQL 启动命令
  2. gdb --args /usr/local/mysql80/bin/mysqld --defaults-file=/home/mysql80/my80.cnf

结果如下所示:

说明:执行完启动命令后会直接跳转到 “--Type for more, q to quit, c to continue without paging--” 直接回车即可!回车后,如果出现:Reading symbols from /usr/local/mysql80/bin/mysqld...,则说明启动成功!

启动结果如下所示:

设置断点并执行到断点处

  1. // 设置断点,is_cond_match_ranges 为函数名,也可以是代码路径 + 具体行数
  2. b is_cond_match_ranges
  3. // 执行到第一个断点处
  4. r

执行结果如下所示:

另启一个窗口 2 并连接 MySQL

/usr/local/mysql80/bin/mysql -h127.0.0.1 -uroot -P3307

接着在该窗口执行 SQL 命令,便可调试 SQL 语句,结果如下:

查看窗口 1 状态

窗口 1 状态如下所示:

直接回车,便可进入语句:select * from t1 where id >8 limit 2, 2; 的调试,结果如下:

由上图可知,调试进入了 is_cond_match_ranges 函数的第一行!

关于 gdb 调试更多命令,详见:gdb 快速上手(附带测试案例)_gdb 测试-CSDN博客

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/141107
推荐阅读
相关标签
  

闽ICP备14008679号