2012-02-16 34 views
7

मैं एक सेगमेंटेशन गलती को ट्रैक करने की कोशिश कर रहा हूं कि मैं पर्ल के विभिन्न संस्करणों पर कोड की कुछ पंक्तियों को अलग करने में सक्षम हूं। मैं विकास और परीक्षण के लिए अपने विभिन्न संस्करणों का प्रबंधन करने के लिए पेर्लब्रू का उपयोग करता हूं, लेकिन यह डिबगिंग प्रतीकों के साथ पर्ल का निर्माण नहीं करता है, इसलिए कोर डंप फ़ाइल का विश्लेषण करने के लिए जीडीबी का उपयोग करना बहुत बेकार है।डिबगिंग प्रतीकों के साथ एक पर्ल बनाने के लिए perlbrew का उपयोग

तो डिबगिंग प्रतीकों सक्षम के साथ perlbrew निर्माण करने का सबसे अच्छा तरीका क्या है। और यदि संभव हो तो मैं इसे एक अलग पर्ल होने में सक्षम होना चाहता हूं कि मैं एक ही संस्करण के लिए मानक एक को ओवरराइड करने के बजाय स्विच कर सकता हूं।

उत्तर

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 

पर्ल डिस्ट्रो की रूट डायर में INSTALL देखें।

+0

ऐसा लगता है कि मैं जो खोज रहा था, हालांकि यह काम नहीं कर रहा है। मैंने इस कमांड को चलाया 'perlbrew इंस्टॉल perl-5.8.8 --as =' perl-5.8.8-debug '-DEBUGGING = दोनों'। फिर जीडीबी के साथ इसका निरीक्षण करने के लिए मैंने 'gdb/home/mpeters/perl5/perlbrew/perls/perl-5.8.8-डीबग/बिन/perl' चलाया और जीडीबी अभी भी कहता है"/home/mpeters/perl5/perlbrew/perls/perl-5.8.8-डीबग/बिन/perl ... (कोई डिबगिंग प्रतीक नहीं मिला) ", तो जाहिर है कि मैं अभी भी कुछ याद कर रहा हूँ। – mpeters

+0

'-DEBUGGING = दोनों शायद तब मौजूद नहीं हो सकते हैं? सही संस्करण distro के लिए 'INSTALL' फ़ाइल देखें। ('-Doptimise = -g' को तब भी काम करना चाहिए।) जब आप प्राचीन सॉफ्टवेयर का उपयोग कर रहे हों तो आपको वास्तव में इसका जिक्र करना चाहिए। (5.8 पहले 10 साल पहले रिलीज़ किया गया था। 5.8 और 5.10 अब समर्थित नहीं हैं, और 5.12 भी ईओएलड होने वाला है।) – ikegami

+0

संस्करण विशिष्ट होने के विकल्पों के संकेत के लिए धन्यवाद। मैं 'perlbrew इंस्टॉल perl-5.8.8 --as = 'perl-5.8.8-debug' -Doptimize = '- g''' के साथ गया और यह एक आकर्षण की तरह काम किया। धन्यवाद। – mpeters