2015-08-15 5 views
7

इसलिए, यह एक साधारण मामला का एक सा - लेकिन अगर मैं इस तरह एक परिपत्र संदर्भ की स्थापना:ढूँढना 'खो' चर (वृत्तीय संदर्भ)

#!/usr/bin/perl 
use strict; 
use warnings; 

{ 
    my $thing; 
    my $otherthing; 
    $thing -> {otherthing} = \$otherthing; 
    $otherthing -> {thing} = \$thing; 
} 

मैं एक स्मृति रिसाव बना सकते हैं - क्योंकि संदर्भ गिनती द्वारा , यहां आवंटित स्मृति कभी भी मुक्त नहीं होगी, भले ही कोई बाहरी 'पहुंच बिंदु' न हो।

तो मैं क्या सोच रहा हूं - इस तरह के परिदृश्य में, क्या मैं ऐसा कर सकता हूं - डीबगिंग या इसी तरह के - इन चरों को 'पुनः खोजें' और फिर उन तक पहुंच प्राप्त करें?

हाइपोटेटिक रूप से मैं एक कम मामूली मामले में सोच रहा हूं - आपके पास एक मेमोरी लीक ऑब्जेक्ट है, लेकिन यह देखने के लिए कि इसमें क्या है, यह देखने के लिए इसे फिर से पकड़ना है, इस बात का संकेत देने के लिए कि ऑब्जेक्ट में क्या था और इस प्रकार समस्या शुरू हो रही थी।

+0

मुझे पता है कि http://search.cpan.org/~lds/Devel-Cycle-1.10/lib/Devel/Cycle.pm और http://search.cpan.org/~ilyaz/Devel- Peek-0.96/Peek.pm दोनों इन मुद्दों के साथ मदद करते हैं, लेकिन जब मैंने वर्रों के दायरे से बाहर निकलते हैं और 'खो' पाते हैं, तो मुझे कभी पता नहीं चला है, इसलिए मुझे नहीं पता कि वे उन मामलों में उपयोगी हैं या नहीं। – stevieb

+0

शायद एक दृश्य के लायक [शायद डेवेल :: लीकट्रेस :: फास्ट] (https://metacpan.org/pod/Devel::LeakTrace::Fast)? – ThisSuitIsBlackNot

+0

https://metacpan.org/pod/Devel:: गैलाडिएटर, https://metacpan.org/pod/Devel::MAT:: डम्पर, 'pmat-explore-gtk' – melpomene

उत्तर

5

यह प्रश्न पर टिप्पणियों में अनुशंसित मॉड्यूल का सिर्फ एक क्यूरेशन है। यह प्रत्येक मॉड्यूल के पॉड प्रलेखन के लिए एक लिंक शामिल है, और नाम और वर्णन वर्गों उद्धरण। यह सुलभ होने के लिए है। लेखक ने लिखा है या नहीं बदला है, या नाम और विवरण अनुभाग के अलावा कहीं भी कहीं भी खींच लिया है

जब भी वे इस प्रारूप में रहते हैं, तब तक अतिरिक्त मॉड्यूल के साथ इसे अपडेट करने के लिए कोई भी स्वागत है। वैकल्पिक रूप से, कोई भी इस तथ्य पर मेरा ध्यान आकर्षित कर सकता है कि इसे अद्यतन करने की आवश्यकता है और मैं ऐसा करूँगा जब मैं

कई महान प्रोग्रामर अंग्रेजी के साथ इतना महान नहीं हैं, जबकि मैंने दस्तावेज़ को उद्धृत करने का प्रयास किया है, मैं कटौती की है मैं इस पोस्ट

Devel::Cycle के उद्देश्य के साथ ध्यान में रखते हुए कम प्रासंगिक वर्गों होने के लिए क्या मानना ​​है - वस्तुओं

में स्मृति चक्र का पता लगाएं यह वस्तुओं और अन्य में वृत्तीय संदर्भ को खोजने के लिए एक सरल डेवलपर उपकरण है संदर्भ के प्रकार। पर्ल के संदर्भ-गणना आधारित मेमोरी प्रबंधन की वजह से, परिपत्र संदर्भ मेमोरी लीक का कारण बनेंगे।

Devel::LeakTrace::Fast - इंगित जहां लीक चर से आ रहे हैं।

Devel::LeakTrace::FastDevel::LeakTrace का पुनर्लेखन है। Devel::LeakTrace की तरह यह एक चल रहे प्रोग्राम के एसवी आवंटन का पता लगाने के लिए perl 5.6 में बाद में प्लग करने योग्य runops सुविधा का उपयोग करता है।

END समय Devel::LeakTrace::Fast किसी भी शेष चर की पहचान करता है, और लाइनों पर रिपोर्ट जो अस्तित्व में आई थी।

Devel::Gladiator -

Devel::Gladiator दोहराता पर्ल के आंतरिक स्मृति संरचनाओं चलो पर्ल के मैदान और की गणना करने में सभी वर्तमान SVs रहते हैं इस्तेमाल किया जा सकता।

इसका उपयोग लीक का शिकार करने और स्मृति उपयोग प्रोफ़ाइल के लिए किया जा सकता है।

Devel::MAT::Dumper - बाद के विश्लेषण के

इस मॉड्यूल स्मृति डंपिंग समारोह है कि एक ढेर डंप फ़ाइल जो बाद में Devel::MAT::Dumpfile द्वारा पढ़ा जा सकता बनाता है प्रदान करता है के लिए एक ढेर डंप फ़ाइल लिखें। यह एक एकल फ़ंक्शन प्रदान करता है जिसे निर्यात नहीं किया जाता है, जो दिए गए पथ पर एक फ़ाइल लिखता है।

डंप फ़ाइल में पर्ल के क्षेत्र में प्रत्येक एसवी का प्रतिनिधित्व होगा, उनके बीच पॉइंटर्स के बारे में जानकारी प्रदान करेगा, साथ ही प्रक्रिया के राज्य के बारे में अन्य जानकारी भी बनाई जाएगी। इसमें उस समय प्रक्रिया के स्नैपशॉट शामिल हैं, जिसे बाद में Devel::MAT::Dumpfile का उपयोग करके विभिन्न उपकरणों द्वारा लोड और विश्लेषण किया जा सकता है।

Devel::Peek - XS प्रोग्रामर

Devel::Peek कार्य करता है जो कच्चे पर्ल डेटाटाइप्स एक पर्ल स्क्रिप्ट से हेरफेर किया जा करने की अनुमति देता शामिल हैं के लिए एक डेटा डीबगिंग टूल। इसका उपयोग उन लोगों द्वारा किया जाता है जो एक्सएस प्रोग्रामिंग करते हैं ताकि यह जांच सके कि वे सी से पर्ल तक जो डेटा भेज रहे हैं, उन्हें लगता है कि उन्हें लगता है कि यह देखना चाहिए।

संबंधित मुद्दे