在eclipse中配置MySQL原始碼環境(r12筆記第14天)
今天費了些周折,總算搭建好了MySQL原始碼的除錯環境,主要的目的就是想在看程式碼的時候有一些頭緒,讓這些開發技巧派上用場。不至於盲人摸象一般的拿著命令肉眼掃視,當然對於程式碼至於能不能啃下來,那是另外一回事了。
我來說說我的情況,Java開發還有一點基礎,所以以前的eclipse還算用得比較熟悉。大家知道InnoDB的原始碼是c,MySQL Server的是c++,這樣一套環境想除錯好,如果沒有這方面的平臺開發經驗其實還是有一點難度的。最後我還是決定使用eclipse來做,基於Windows平臺。
裡面趟了好幾個坑,讓我苦不堪言。
先要做幾件事情
1)下載MySQL原始碼
2)下載開發IDE eclipse
3) 編譯環境除錯
4) 配置程式碼除錯方式
下載MySQL原始碼
MySQL原始碼的下載,直接到上面,選擇社群版,下載型別是source code,就可以看到下面的選項了。
比如說我選擇的是這個5.6.35的版本。最新的是5.7的,再早一些的是5.5版本的,之前的還真不好找了,得透過其他渠道了。
下載IDE eclipse
eclipse是個開發通用平臺的IDE,不過這個說法現在受到了IntelliJ IDEA的挑戰,目前來看挑戰成功,其中有一部分原因和新版本的一些介面的改進有關,不過相對來說eclipse這個工具Java開發者用得多一些,有些面試裡還會問裡面的幾個快捷鍵,一問就能問出來i用得怎麼樣。可能有的朋友就會問,eclipse是Java開發用得多一些,那和MySQL原始碼環境有什麼關係。難道在裡面用Java編輯器看c++程式碼,非也。
因為eclipse還是有c++版的插件的,可以在上面下載c++版本專屬的。
坑點1
但是下載之後,啟動eclipse失敗,錯誤是Failed to load the JNI shared library jvm.dll”,這個錯誤的大多數說法是和JDK的位數有關,比如32位,64位的相容性有關,當前的環境是一個JDK6的環境,看來孩不夠,我再下載個JDK7的試試。官網已經直接下載不了了,得透過mos下載。
配置好環境之後,收到的錯誤變樣了,我感覺被這個錯誤玩弄了。
一個IDE升級那麼新版本的JDK幹什麼,然後又這回來下載JDK8。官網下載的還是安裝版的。我就默默的看著下面的這個霸氣的硬廣,直到安裝成功。其實相對來說,我還是喜歡解壓版的。
eclipse可以啟動了,我建立了一個專案,我命名為mysql_5_6_35
這個時候環境還是基本空白的,先建立好再說。
簡單確認之後,就建立好了一個專案,新版本的exlipse就開始生成了工作目錄。啟動的介面還是不錯的。
編譯環境除錯
啟動了eclipse,建立了專案,我們可以從指定的目錄下匯入原始碼包裡的程式碼。當然不出所料,開啟程式碼之後,發現後臺開始報出了下面的錯誤。編譯環境就有有問題。
這個時候如果能配置好還是很有意思的,可以在windows上來安裝一下gcc,g++的環境,可以參考這個網站,下載即可。
這個軟體的風格蠻有意思,下載安裝包的時候是下面的安裝進度,需要安裝哪些外掛,也基本是這樣的形式。
我們不光要gcc的,還要g++,在安裝好的軟體基礎上需要再下載新的包來安裝。最後會提示安裝成功。
在eclipse裡面還是需要做一些基本的配置的。根據紅色的框圖找到對應的選單,修改右下角的路徑,這個路徑就是我們剛剛安裝的軟體所在的目錄。
比如我安裝在了D盤,就配置成下面紅框的路徑。
這個時候還有一個問題,提示make沒有配置,這個問題可讓我有些摸不著頭腦。gcc都裝了,make檢查了也是安裝成功的,為什麼提示配置裡沒有呢。這裡有一個梗。我們需要把下面的檔案改個名字,其實它就是make
配置好環境,編譯就大體沒有問題了。
配置程式碼除錯方式
其實上面的環境配置也算是一個輔助,如果我們只是看看程式碼,其實也能接受,不過下面的這個功能用不了,檢視程式碼就會困難重重。比如我滑鼠點選到程式碼裡的某一個方法,根據呼叫關係我能夠很快定位到另一個檔案的呼叫函式,如此一來檢視邏輯就會清楚許多。
但是這個功能在eclipse竟然用不了,熟悉Java開發的同學應該都熟悉這個outline的功能,一個檔案裡面有哪些函式,哪些變數都可以一目瞭然,所以這種情況得改進,發現無法啟用的原因是我開啟的其中一個檔案的程式碼行數超過了5000行。預設eclipse的配置,超過5000行就啟用不了outline了,我們改一下紅框的配置即可。
配置好之後,重啟eclipse就沒問題了,可以看到右邊的outline資訊,求會清晰很多,點選程式碼也會有這種定位功能,這下看程式碼就方便多了。比如我們檢視InnoDB的程式碼,到storage/Innobase/handler/ha_innodb.cc這個檔案,這會是我學習innodb的一個關鍵介面檔案。
環境配置好了,剩下的事情才是重點的內容。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2136086/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL原始碼安裝總結(r12筆記第12天)MySql原始碼筆記
- 分分鐘搭建MySQL一主多從環境(r12筆記第31天)MySql筆記
- 分分鐘搭建MySQL Group Replication測試環境(二)(r12筆記第41天)MySql筆記
- MySQL中的derived table(r12筆記第47天)MySql筆記
- MySQL service啟動指令碼淺析(r12筆記第59天)MySql指令碼筆記
- Eclipse從零配置Maven環境 筆記EclipseMaven筆記
- MySQL中的binlog和redo淺析(r12筆記第5天)MySql筆記
- 相同update語句在MySQL,Oracle的不同表現(r12筆記第30天)MySqlOracle筆記
- MySQL數值型別在binlog中需要注意的細節(r12筆記第69天)MySql型別筆記
- MySQL傳輸表空間小結(r12筆記第2天)MySql筆記
- MySQL自增列的重複值問題(r12筆記第25天)MySql筆記
- MySQL無法建立表的問題分析(r12筆記第73天)MySql筆記
- 在windows下配置Eclipse + go環境WindowsEclipseGo
- 分分鐘搭建MySQL Group Replication測試環境(r11筆記第83天)MySql筆記
- 歸零的心態(r12筆記第82天)筆記
- mysqlpump的效能測試(r12筆記第89天)MySql筆記
- 使用pt工具檢測MySQL主從延遲(r12筆記第7天)MySql筆記
- MySQL中的批量初始化資料的對比測試(r12筆記第71天)MySql筆記
- 我爸爸眼中的我(r12筆記第22天)筆記
- 一個IT人和ppt的故事(r12筆記第39天)筆記
- 我的女兒二三事(七)(r12筆記第58天)筆記
- 玩足彩的一點感受(r12筆記第80天)筆記
- Eclipse配置maven環境EclipseMaven
- 配置Struts環境[Eclipse]Eclipse
- 心理學中的效應簡單解讀(r12筆記第24天)筆記
- Oracle閃回原理測試(三)(r12筆記第16天)Oracle筆記
- sandbox和MHA快速測試(r12筆記第32天)筆記
- Oracle 12c DBCA淺析(r12筆記第48天)Oracle筆記
- mysqldump的一點使用總結(r12筆記第81天)MySql筆記
- 駕考的一點總結(r12筆記第93天)筆記
- 在IBM Lotus Sametime V7.5.1中配置Eclipse環境IBMEclipse
- MySQL自增列主從不一致的測試(r12筆記第37天)MySql筆記
- 推薦最近收藏的幾篇文章(r12筆記第85天)筆記
- mysqlpump和mysqldump的效能大比拼(r12筆記第90天)MySql筆記
- 請問在JBoss3.0.4環境中怎能配置mysql JDBC?S3MySqlJDBC
- MySQL中的undo截斷(r11筆記第89天)MySql筆記
- 【環境配置】Linux環境下下載、配置java環境、安裝eclipse、建立eclipse快捷方式詳解LinuxJavaEclipse
- Eclipse配置PHP開發環境EclipsePHP開發環境