MySQL源碼分析及核心內幕之2 -- 源碼調試之gdb

      由前面一篇博文中,我們已經知道,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: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調試基本上就是這些步驟,以後研究源代碼時還會進行這樣的調試。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章