MySQL源码分析及核心内幕之2 -- 源码调试之gdb
来源:互联网 发布:郑玲玲的淘宝店叫什么 编辑:程序博客网 时间:2024/05/16 01:26
由前面一篇博文中,我们已经知道,MySQL源码目录下的BUILD目录是各种平台使用的编译脚本,我们要用的是debug版本,以方便我们使用gdb来调试MySQL,所以使用的脚本是BUILD/compile-pentium-debug来配置MySQL的编译,首先,进入mysql源码根目录,执行以下命令:
>BUILD/compile-pentium-debug --prefix=$HOME/mysql-bin
安装目录为$HOME/mysql-bin,然后,执行安装:
>make && make install
第三步是生成mysql系统库:
>cd $HOME/mysql-bin>cd scripts>./mysql_install_db --defaults-file=/etc/my.cnf --basedir=$HOME/mysql-bin --datadir=$HOME/mysql-bin/data
第四步是gdb运行mysqld:
>gdb --args ~/mysql-bin/bin/mysqld --defaults-file=/etc/my.cnf --basedir=~/mysql-bin --datadir=~/mysql-bin/data (gdb) br handle_one_connection #设置断点c #继续运行
第五步是在另一个shell中运行客户端程序mysql连接mysqld服务端:
>cd $HOME/mysql-bin>cd bin>./mysql
第六步是查看gdb输出:
Breakpoint 1, handle_one_connection (arg=0x86ede38) at sql_connect.cc:10761076 THD *thd= (THD*) arg;(gdb) bt#0 handle_one_connection (arg=0x86ede38) at sql_connect.cc:1076#1 0x4fc133a8 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0#2 0x4fb647fe in clone () from /lib/tls/i686/cmov/libc.so.6
使用gdb调试基本上就是这些步骤,以后研究源代码时还会进行这样的调试。
- MySQL源码分析及核心内幕之2 -- 源码调试之gdb
- MySQL源码分析及核心内幕之2 -- 源码调试之gdb
- MySQL源码分析及核心内幕之3 -- 源码调试之Eclipse C/C++
- MySQL源码分析及核心内幕之3 -- 源码调试之Eclipse C/C++
- MySQL源码分析及核心内幕之4 -- 源码服务端main函数开始及启动流程
- MySQL源码分析及核心内幕之4 -- 源码服务端main函数开始及启动流程
- MySQL源码分析及核心内幕之1 -- 源码目录结构
- MySQL源码分析及核心内幕之1 -- 源码目录结构
- nginx源码分析--GDB调试
- netty源码分析之-服务端启动核心源码分析(5)
- jquery1.43源码分析之核心部分
- Amoeba源码分析之:核心类说明
- Spark SQL源码分析之核心流程
- LDD3源码分析之调试技术
- LDD3源码分析之调试技术
- LDD3源码分析之调试技术
- LDD3源码分析之调试技术
- HBase源码分析之远程调试
- 高性能网络编程2----TCP消息的发送
- oracle 闪回
- python的chr()、unichr()和ord()
- Mahout贝叶斯算法源码分析(1)
- 高性能网络编程3----TCP消息的接收
- MySQL源码分析及核心内幕之2 -- 源码调试之gdb
- Ubuntu装配宋体
- 【工具】各种网络工具 相当实用 【不定期更新】
- VC2005打开VC6工程可能遇到的错误参考方案
- RAC 的并发控制
- IJCAI13 Web and Knowledge-based Information Systems概述(1)
- Oracle Hints详解
- UART协议
- [T9译言]--<敏捷转型>之Chapter 1了解敏捷