2012-02-16 64 views
7

我試圖找到一個分段錯誤,我已經能夠隔離到不同版本的Perl上的幾行代碼。我使用perlbrew來管理我的各種版本以進行開發和測試,但它不會使用調試符號構建perl,所以使用gdb來分析核心轉儲文件是非常沒用的。使用perlbrew構建一個帶有調試符號的perl

那麼什麼是最好的方式讓perlbrew與啓用調試符號生成。如果可能的話,我希望能夠讓它成爲一個單獨的perl,我可以切換到而不是覆蓋相同版本的標準版本。

回答

11
perlbrew install -v 5.14.2 --as=5.14.2d -DEBUGGING=-g 

--as把它以不同的名稱,這樣你就可以保持你現有的基礎之上。)

還有包括上述之類的東西下面,你肯定不需要:

perlbrew install -v 5.14.2 --as=5.14.2d -DEBUGGING=both 

請參閱Perl發行版的根目錄中的INSTALL

+0

這看起來就像我正在尋找的,但它似乎並沒有工作。我運行了這個命令'perlbrew install perl-5.8.8 --as ='perl-5.8.8-debug'-DEBUGGING = both'。然後用gdb檢查它,我運行了'gdb/home/mpeters/perl5/perlbrew/perls/perl-5.8.8-debug/bin/perl',而gdb仍然說「從/ home/mpeters/perl5/perlbrew/perls/perl-5.8.8-debug/bin/perl ...(沒有找到調試符號)「,所以顯然我仍然缺少一些東西。 – mpeters 2012-02-24 15:25:38

+0

'-DEBUGGING =兩個'可能當時不存在?檢查正確版本發行版的'INSTALL'文件。 ('-Doptimise = -g'應該可以工作。)當你使用古老的軟件時,你應該提及它。 (5.8在10年前首次發佈,5.8和5.10不再支持,而5.12也將被EOLed) – ikegami 2012-02-24 16:45:25

+0

感謝有關選項特定版本的提示。我用'perlbrew install perl-5.8.8 --as ='perl-5.8.8-debug'-Doptimize =' - g'',它的功能就像一個魅力。謝謝。 – mpeters 2012-03-01 19:32:37