MySQL源码分析及核心内幕之2 -- 源码调试之gdb
2013-08-28 00:09
489 查看
由前面一篇博文中,我们已经知道,MySQL源码目录下的BUILD目录是各种平台使用的编译脚本,我们要用的是debug版本,以方便我们使用gdb来调试MySQL,所以使用的脚本是BUILD/compile-pentium-debug来配置MySQL的编译,首先,进入mysql源码根目录,执行以下命令:
安装目录为$HOME/mysql-bin,然后,执行安装:
第三步是生成mysql系统库:
第四步是gdb运行mysqld:
第五步是在另一个shell中运行客户端程序mysql连接mysqld服务端:
第六步是查看gdb输出:
使用gdb调试基本上就是这些步骤,以后研究源代码时还会进行这样的调试。
>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:1076 1076 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源码分析及核心内幕之3 -- 源码调试之Eclipse C/C++
- MySQL源码分析及核心内幕之3 -- 源码调试之Eclipse C/C++
- MySQL源码分析及核心内幕之1 -- 源码目录结构
- MySQL源码分析及核心内幕之1 -- 源码目录结构
- MySQL源码分析及核心内幕之4 -- 源码服务端main函数开始及启动流程
- MySQL源码分析及核心内幕之4 -- 源码服务端main函数开始及启动流程
- C++虚函数实现一般化操作内幕分析(源码VC6.0可以直接调试)
- MySQL源码分析(0):编译安装及调试
- nginx源码分析--GDB调试
- MySQL源码构建和在Gdb中调试的配置过程
- nginx源码分析--使用GDB调试(strace、 pstack )
- nginx源码分析--使用GDB调试
- nginx源码分析--使用GDB调试(strace、 pstack )
- nginx源码分析--使用GDB调试
- Linux操作系统分析(6)- qemu+gdb调试linux内核
- gdb和gdbserver源码架构分析
- mysql源码分析之SQL执行过程简介
- mtk recovery源码分析及调试过程
- ExtJs源码分析与学习—ExtJs核心代码(三)