[Linux] 手動編譯 curl 7.19.7 的 debug 版本

[Linux] 手動編譯 curl 7.19.7 的 debug 版本

前一陣子遇到了 curl 7.19.7 陷入無窮迴圈的問題

原本以為找到問題就 OK 了,但最近被要求要找出重現問題的方法,

好方便驗證這是個問題,產品才願意去改…

幸好編譯 curl 比我想像中的要簡單,中間沒有遇到什麼問題,算是不幸中的大幸 😛

 

1. 取得 curl 7.19.7 的原始碼

這個隨便 Google 一下 “curl 7.19.7 source code” 就可以找到了,

像我找到的是 https://github.com/csexton/curl-7.19.7/archive/master.zip

 

2. 設定並編譯 curl

這邊可以參考一下 curl doc: how to install curl

先解開下載下來的 zip 檔,執行一行 ./configure –help 看看,

發現下面的選項對我接下來的工作是比較有幫助的:

  --prefix=PREFIX         install architecture-independent files in PREFIX
--enable-debug          Enable debug build options
--disable-optimize      Disable compiler optimizations

 

–prefix 可以讓我決定 curl 要裝到哪去,

–enable-debug 和 –disable-optimize 可以讓我編譯出有 debug symbol 的版本,

同時不要有最佳化 (debug 最佳化的 code 會一直亂跳到自己瘋掉 =_=)~

下面是我下的 configure 指令:

./configure --prefix=/home/build/curl_7.19.7 --enable-debug --disable-optimize

 

接下來就簡單了,執行 make && make install 就行了~

沒問題的話,curl 的執行檔就會放在 –prefix 指定的目錄下的 bin 目錄,

在本例中是 /home/build/curl_7.19.7/bin:

make && make install

 

3. 用 gdb 執行 curl

因為要重現 curl hang 住的問題,因此用 gdb 執行剛編譯好的 curl,

看看要怎樣的條件下,才會進到之前預想的狀況~

試著單步執行一下,行數和程式碼都可以正確的顯示,也不會亂跳,

編譯 debug 版本的 curl 算是成功囉~

之後真的作完 debug 的工作再來寫一篇吧~~^^

 

 

(本頁面已被瀏覽過 301 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料