MySQL源碼構建和在Gdb中調試的配置過程

來源:互聯網
上載者:User

通過源碼學習C++是我一直以來的習慣,上個月把SGI’s STL源碼搗鼓了一下,畢竟是在Win下,配置過程還是很順利的,這個可以參考侯傑的STL源碼,一有空我就深入STL,那個才是基礎啊。

但是光有基礎是不夠的,於是MySQL成了我第三個開源項目的被解剖者,第一個是Myseelite,因為當時要做一個P2P流媒體播放器,是基於那個項目的並且移植到Win下,當然這個是實踐性最強的一個項目了。MySQL,STL,Linux這些源碼也只能抽空小改改,沒有時間完全深入,這個還是很鬱悶的,因為白天要上班,項目還是比較緊的那種。

環境:rhel 5 64-bit 一個快被我用爛了的Linux,但是一直沒重裝過,因為一直保留有快照,萬一不行了還原下,呵呵。

網上有用BitKeeper下MySQL源碼,估計是類似是CVS SVN的版本控制,下了沒用還只能找到2.0版本的,訪問了他提供的地址,連源碼都找不到,是不是被撤了也不知道,反正網上能下到源碼,幹嗎還用版本控制。

這個網站能下到源碼,有4.1.18還有5.0.18的,我下了前者。

前期準備,gcc,autoconf,automake,m4,make等各種工具,我的rhel 5都裝好了。

$ tar zxvf mysql-4.1.18.tar.gz

$ cd mysql-4.1.18

$ cp BUILD/compile-pentium-debug BUILD/compile-generic-debug

$ vim BUILD/compile-generic-debug

將檔案設定如下:

#! /bin/sh

 

path=`dirname $0`

. "$path/SETUP.sh"

 

extra_flags="-g  $debug_cflags"

c_warnings="$c_warnings $debug_extra_warnings"

cxx_warnings="$cxx_warnings $debug_extra_warnings"

extra_configs=""

 

. "$path/FINISH.sh"

 

$ BUILD/compile- generic-debug   產生make檔案

$make test

如下這步可選,如果你要將MySQL安裝到系統目錄,那麼可以執行

$make install

當然還可以用 $./configure 配置選項

接下來就是最重要的調試了

$cd到mysql-test目錄下

$cd t

在t目錄下你會發現有很多.test檔案,檔案內容全是sql語句,是預存在MySQL下提供給我們測試的,當然也可以自己建立一個.test檔案,裡面寫上自己要測試的代碼。

測試:

$./mysql-test-run –gdb 測試檔案名稱(注意不帶test)

比如測試drop.test檔案,那麼命令列便是

$./mysql-test-run –gdb drop

運行後會跳出gdb調試視窗,會跳到mysql_parse()函數中的一個預設斷點中。

調試完成後,控制台會提示測試結果。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.