प्योरिफाईप्लस: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{Short description|Memory debugger program}}
{{Short description|Memory debugger program}}
{{Infobox software
{{Infobox software
| name = UNICOM PurifyPlus
| name = यूनिकॉम प्योरिफाईप्लस
|logo            =  
|logo            =  
| logo alt      = Unicom Systems corporate logo
| logo alt      = यूनिकॉम सिस्टम्स कॉर्पोरेट लोगो
| screenshot    =  
| screenshot    =  
| caption =  
| caption =  
| author = [[Pure Software]]
| author = [[प्योर सॉफ्टवेयर]]
| developer = UNICOM Systems, a division of [[UNICOM Global]]
| developer = यूनिकॉम सिस्टम्स, [[यूनिकॉम ग्लोबल]] का एक प्रभाग
| latest_release_version = 8.1
| latest_release_version = 8.1
| latest_release_date = August 1, 2021
| latest_release_date = अगस्त1, 2021
| operating_system = Windows, Linux, Solaris
| operating_system = विंडोज़, लिनक्स, सोलारिस
| genre = [[Memory debugger]]
| genre = [[मेमोरी डिबगर]]
| license = [[Proprietary software]]
| license = [[प्रोपर्टी सॉफ़्टवेयर]]
| website = {{URL|https://www.teamblue.unicomsi.com/products/purifyplus/}}
| website = {{URL|https://www.teamblue.unicomsi.com/products/purifyplus/}}
}}
}}


PurifyPlus [[मेमोरी डिबगर]] प्रोग्राम है जिसका उपयोग [[ सॉफ़्टवेयर |सॉफ़्टवेयर]] डेवलपर्स द्वारा प्रोग्राम में मेमोरी एक्सेस एरर का पता लगाने के लिए किया जाता है, विशेष रूप से C (प्रोग्रामिंग लैंग्वेज) या [[C++]] में लिखे गए। यह मूल रूप से [[शुद्ध सॉफ्टवेयर]] के [[रीड हेस्टिंग्स]] द्वारा लिखा गया था।<ref>[https://web.stanford.edu/class/cs343/resources/purify.pdf Purify: fast detection of memory leaks and access errors.] by Reed Hastings and Bob Joyce, Usenix Winter 1992 technical conference.</ref> प्योर सॉफ्टवेयर को बाद में प्योर एट्रिया सॉफ्टवेयर बनाने के लिए एट्रिया सॉफ्टवेयर के साथ विलय कर दिया गया, जिसे बाद में [[तर्कसंगत सॉफ्टवेयर]] द्वारा अधिग्रहित कर लिया गया, जिसे बाद में [[आईबीएम]] द्वारा अधिग्रहित कर लिया गया, और फिर 31 दिसंबर, 2014 को [[यूनिकॉम सिस्टम्स]], इंक. को बेच दिया गया। यह कार्यात्मक रूप से समान है अन्य मेमोरी डिबगर्स के लिए, जैसे [[Insure++]], [[Valgrind]] और [[BoundsChecker]]
प्योरिफाईप्लस [[मेमोरी डिबगर]] प्रोग्राम है जिसका उपयोग [[ सॉफ़्टवेयर |सॉफ़्टवेयर]] डेवलपर्स द्वारा प्रोग्राम में मेमोरी एक्सेस एरर का पता लगाने के लिए किया जाता है, विशेष रूप से C (प्रोग्रामिंग लैंग्वेज) या [[C++]] में लिखे गए है। यह मूल रूप से [[शुद्ध सॉफ्टवेयर|प्योर सॉफ्टवेयर]] के [[रीड हेस्टिंग्स]] द्वारा लिखा गया था।<ref>[https://web.stanford.edu/class/cs343/resources/purify.pdf Purify: fast detection of memory leaks and access errors.] by Reed Hastings and Bob Joyce, Usenix Winter 1992 technical conference.</ref> प्योर सॉफ्टवेयर को बाद में प्योर एट्रिया सॉफ्टवेयर बनाने के लिए एट्रिया सॉफ्टवेयर के साथ विलय कर दिया गया था, जिसे बाद में [[तर्कसंगत सॉफ्टवेयर|यूनिकॉम सॉफ्टवेयर]] द्वारा अधिग्रहित कर लिया गया था, जिसे बाद में [[आईबीएम]] द्वारा अधिग्रहित कर लिया गया था, और फिर 31 दिसंबर, 2014 को [[यूनिकॉम सिस्टम्स]], इंक. को बेच दिया गया था। यह कार्यात्मक रूप से समान है अन्य मेमोरी डिबगर्स के लिए, जैसे [[Insure++|इनस्योर++]], [[Valgrind|वालग्रिंड]] और [[BoundsChecker|बाउंड्सचेकर]] है।


'''प्योरिफाईप्लस में अन्य कार्यात्मकताएं भी शामिल हैं, जैसे उच्च-प्रदर्शन [[ब्रेकप्वाइंट]], जो किसी के कोड पर डिबगर का उपयोग करते समय सामान्य उपयोग के होते हैं।'''
'''प्योरिफाईप्लस में अन्य कार्यात्मकताएं भी सम्मिलित हैं, जैसे उच्च-प्रदर्शन [[ब्रेकप्वाइंट]], जो किसी के कोड पर डिबगर का उपयोग करते समय सामान्य उपयोग के होते हैं।'''


== सिंहावलोकन ==
== अवलोकन ==
PurifyPlus डायनेमिक सत्यापन की अनुमति देता है, प्रक्रिया जिसके द्वारा प्रोग्राम उन त्रुटियों का पता लगाता है जो प्रोग्राम के चलने पर होती हैं, बहुत हद तक [[ डिबगर |डिबगर]] की तरह। स्थिर सत्यापन या [[स्थिर कोड विश्लेषण]], इसके विपरीत, केवल तार्किक विसंगतियों की खोज करके, बिना संकलन या इसे चलाए स्रोत कोड में त्रुटियों का पता लगाना शामिल है। C (प्रोग्रामिंग लैंग्वेज) [[ संकलक |संकलक]] द्वारा [[ प्रकार की जाँच |प्रकार की जाँच]] स्टैटिक वेरिफिकेशन का उदाहरण है।
प्योरिफाईप्लस डायनेमिक सत्यापन की अनुमति देता है, प्रक्रिया जिसके द्वारा प्रोग्राम उन त्रुटियों का पता लगाता है जो प्रोग्राम के चलने पर होती हैं, बहुत सीमा तक [[ डिबगर |डिबगर]] की तरह स्थिर सत्यापन या [[स्थिर कोड विश्लेषण]], इसके विपरीत, केवल तार्किक विसंगतियों की खोज करके, बिना संकलन या इसे चलाए स्रोत कोड में त्रुटियों का पता लगाना सम्मिलित है। C (प्रोग्रामिंग लैंग्वेज) [[ संकलक |संकलक]] द्वारा [[ प्रकार की जाँच |टाइप चेकिंग]] स्टैटिक वेरिफिकेशन का उदाहरण है।


जब कोई प्रोग्राम PurifyPlus के साथ [[लिंकर (कंप्यूटिंग)]] होता है, तो लाइब्रेरी सहित [[ वस्तु कोड |वस्तु कोड]] को पार्स करके और जोड़कर निष्पादन योग्य में सही सत्यापन कोड स्वचालित रूप से डाला जाता है। इस तरह, यदि कोई मेमोरी त्रुटि होती है, तो प्रोग्राम त्रुटि के सटीक स्थान, शामिल मेमोरी एड्रेस और अन्य प्रासंगिक जानकारी को प्रिंट करेगा। PurifyPlus [[ स्मृति रिसाव |स्मृति रिसाव]] का भी पता लगाता है। डिफ़ॉल्ट रूप से, लीक रिपोर्ट प्रोग्राम से बाहर निकलने पर उत्पन्न होती है, लेकिन इंस्ट्रूमेंटेड एप्लिकेशन के भीतर से PurifyPlus लीक-डिटेक्शन एपीआई को कॉल करके भी उत्पन्न की जा सकती है।
जब कोई प्रोग्राम प्योरिफाईप्लस के साथ [[लिंकर (कंप्यूटिंग)]] होता है, जिससे लाइब्रेरी सहित [[ वस्तु कोड |वस्तु कोड]] को पार्स करके और जोड़कर निष्पादन योग्य में सही सत्यापन कोड स्वचालित रूप से डाला जाता है। इस तरह, यदि कोई मेमोरी त्रुटि होती है, जिससे प्रोग्राम त्रुटि के स्पष्ट स्थान, सम्मिलित मेमोरी एड्रेस और अन्य प्रासंगिक जानकारी को प्रिंट करता है। प्योरिफाईप्लस [[ स्मृति रिसाव |मेमोरी रिसाव]] का भी पता लगाता है। डिफ़ॉल्ट रूप से, लीक रिपोर्ट प्रोग्राम से बाहर निकलने पर उत्पन्न होती है, किन्तु इंस्ट्रूमेंटेड एप्लिकेशन के अन्दर से प्योरिफाईप्लस लीक-डिटेक्शन एपीआई को कॉल करके भी उत्पन्न की जा सकती है।


PurifyPlus जिन त्रुटियों का पता लगाता है, उनमें सरणी सीमाएँ पढ़ना और लिखना शामिल है, असंबद्ध मेमोरी तक पहुँचने की कोशिश करना, असंबद्ध मेमोरी को मुक्त करना (आमतौर पर दूसरी बार उसी मेमोरी को मुक्त करने के कारण), साथ ही मेमोरी लीक (बिना किसी सूचक संदर्भ के आवंटित मेमोरी)इन त्रुटियों में से अधिकांश घातक नहीं हैं (कम से कम त्रुटि के स्थान पर नहीं), और अक्सर प्रोग्राम चलाते समय उनका पता लगाने का कोई तरीका नहीं होता है, सिवाय इसके कि गलत प्रोग्राम व्यवहार के कारण कुछ गलत है। इसलिए PurifyPlus इन त्रुटियों का पता लगाने और प्रोग्रामर को यह बताने में मदद करता है कि वे कहाँ होती हैं। क्योंकि PurifyPlus सभी ऑब्जेक्ट कोड को इंस्ट्रुमेंट करके काम करता है, यह उन त्रुटियों का पता लगाता है जो तृतीय-पक्ष या [[ऑपरेटिंग सिस्टम]] लाइब्रेरी के अंदर होती हैं। ये त्रुटियां अक्सर प्रोग्रामर द्वारा लाइब्रेरी कॉल के लिए गलत तर्क पारित करने, या पुस्तकालयों द्वारा उपयोग किए जाने वाले डेटा संरचनाओं को मुक्त करने के लिए प्रोटोकॉल के बारे में गलतफहमी के कारण होती हैं। ये अक्सर खोजने और ठीक करने में सबसे कठिन त्रुटियां होती हैं।
प्योरिफाईप्लस जिन त्रुटियों का पता लगाता है, उनमें सरणी सीमाएँ पढ़ना और लिखना सम्मिलित है, असंबद्ध मेमोरी तक पहुँचने की प्रयास करना, असंबद्ध मेमोरी को मुक्त करना (सामान्यतः दूसरी बार उसी मेमोरी को मुक्त करने के कारण), साथ ही मेमोरी लीक (बिना किसी सूचक संदर्भ के आवंटित मेमोरी) इन त्रुटियों में से अधिकांश घातक नहीं हैं (कम से कम त्रुटि के स्थान पर नहीं), और अधिकांशतः प्रोग्राम चलाते समय उनका पता लगाने का कोई विधि नहीं होती है, इसके कि गलत प्रोग्राम व्यवहार के कारण कुछ गलत है। इसलिए प्योरिफाईप्लस इन त्रुटियों का पता लगाने और प्रोग्रामर को यह बताने में सहायता करता है कि वे कहाँ होती हैं। क्योंकि प्योरिफाईप्लस सभी ऑब्जेक्ट कोड को इंस्ट्रुमेंट करके काम करता है, यह उन त्रुटियों का पता लगाता है जो तृतीय-पक्ष या [[ऑपरेटिंग सिस्टम]] लाइब्रेरी के अंदर होती हैं। ये त्रुटियां अधिकांशतः प्रोग्रामर द्वारा लाइब्रेरी कॉल के लिए गलत तर्क पारित करने, या पुस्तकालयों द्वारा उपयोग किए जाने वाले डेटा संरचनाओं को मुक्त करने के लिए प्रोटोकॉल के बारे में गलतफहमी के कारण होती हैं। ये अधिकांशतः खोजने और ठीक करने में सबसे कठिन त्रुटियां होती हैं।


== पारंपरिक डिबगर्स से अंतर ==
== पारंपरिक डिबगर्स से अंतर ==
गैर-घातक त्रुटियों का पता लगाने की क्षमता PurifyPlus और सामान्य डिबगर्स से समान कार्यक्रमों के बीच प्रमुख अंतर है। इसके विपरीत, डिबगर्स आम तौर पर केवल प्रोग्रामर को घातक त्रुटियों के स्रोतों को जल्दी से खोजने की अनुमति देते हैं, जैसे कि अशक्त [[सूचक (कंप्यूटर प्रोग्रामिंग)]] को संदर्भित करने के कारण प्रोग्राम क्रैश, लेकिन गैर-घातक स्मृति त्रुटियों का पता लगाने में मदद नहीं करते हैं। डिबगर्स उन अन्य चीजों के लिए उपयोगी होते हैं जिनके लिए PurifyPlus का इरादा नहीं है, जैसे कि कोड लाइन के माध्यम से लाइन के माध्यम से आगे बढ़ना या निष्पादन के किसी विशेष क्षण में प्रोग्राम की मेमोरी को हाथ से जांचना। दूसरे शब्दों में, ये उपकरण कुशल डेवलपर के लिए एक दूसरे के पूरक हो सकते हैं।
गैर-घातक त्रुटियों का पता लगाने की क्षमता प्योरिफाईप्लस और सामान्य डिबगर्स से समान कार्यक्रमों के बीच प्रमुख अंतर है। इसके विपरीत, डिबगर्स आम तौर पर केवल प्रोग्रामर को घातक त्रुटियों के स्रोतों को जल्दी से खोजने की अनुमति देते हैं, जैसे कि अशक्त [[सूचक (कंप्यूटर प्रोग्रामिंग)]] को संदर्भित करने के कारण प्रोग्राम क्रैश, किन्तु गैर-घातक मेमोरी त्रुटियों का पता लगाने में सहायता नहीं करते हैं। डिबगर्स उन अन्य चीजों के लिए उपयोगी होते हैं जिनके लिए प्योरिफाईप्लस का प्रयोजन नहीं है, जैसे कि कोड लाइन के माध्यम से लाइन के माध्यम से आगे बढ़ना या निष्पादन के किसी विशेष क्षण में प्रोग्राम की मेमोरी को हाथ से जांचना होता है। दूसरे शब्दों में, ये उपकरण कुशल डेवलपर के लिए एक दूसरे के पूरक हो सकते हैं।


प्योरिफाईप्लस में अन्य कार्यात्मकताएं भी शामिल हैं, जैसे उच्च-प्रदर्शन [[ब्रेकप्वाइंट]], जो किसी के कोड पर डिबगर का उपयोग करते समय सामान्य उपयोग के होते हैं।
प्योरिफाईप्लस में अन्य कार्यात्मकताएं भी सम्मिलित हैं, जैसे उच्च-प्रदर्शन [[ब्रेकप्वाइंट]], जो किसी के कोड पर डिबगर का उपयोग करते समय सामान्य उपयोग के होते हैं।


यह ध्यान देने योग्य है कि PurifyPlus का उपयोग प्रोग्रामिंग भाषाओं में सबसे अधिक समझ में आता है जो मेमोरी प्रबंधन को प्रोग्रामर पर छोड़ देता है। इसलिए, [[ जावा (प्रोग्रामिंग भाषा) |जावा (प्रोग्रामिंग भाषा)]] , [[ लिस्प प्रोग्रामिंग भाषा |लिस्प प्रोग्रामिंग भाषा]] या [[ मूल दृश्य |मूल दृश्य]] में, उदाहरण के लिए, स्वचालित मेमोरी प्रबंधन किसी भी मेमोरी लीक की घटना को कम करता है। हालाँकि इन भाषाओं में अभी भी रिसाव हो सकता है; वस्तुओं के अनावश्यक संदर्भ स्मृति को पुनः आवंटित होने से रोकेंगे। इस प्रकार की त्रुटियों को उजागर करने के लिए आईबीएम के पास रैशनल एप्लिकेशन डेवलपर नामक उत्पाद है।
यह ध्यान देने योग्य है कि प्योरिफाईप्लस का उपयोग प्रोग्रामिंग भाषाओं में सबसे अधिक समझ में आता है जो मेमोरी प्रबंधन को प्रोग्रामर पर छोड़ देता है। इसलिए, [[ जावा (प्रोग्रामिंग भाषा) |जावा (प्रोग्रामिंग भाषा)]] , [[ लिस्प प्रोग्रामिंग भाषा |लिस्प प्रोग्रामिंग भाषा]] या [[ मूल दृश्य |मूल दृश्य]] में, उदाहरण के लिए, स्वचालित मेमोरी प्रबंधन किसी भी मेमोरी लीक की घटना को कम करता है। चूँकि इन भाषाओं में अभी भी रिसाव हो सकता है; वस्तुओं के अनावश्यक संदर्भ मेमोरी को पुनः आवंटित होने से रोकेंगे। इस प्रकार की त्रुटियों को प्रदर्शित करने के लिए आईबीएम के पास रैशनल एप्लिकेशन डेवलपर नामक उत्पाद है।


== समर्थित प्लेटफॉर्म ==
== समर्थित प्लेटफॉर्म ==
Line 38: Line 38:
=== समर्थित सी/सी++ प्लेटफॉर्म ===
=== समर्थित सी/सी++ प्लेटफॉर्म ===
{| class="wikitable"
{| class="wikitable"
! Operating system
! ऑपरेटिंग सिस्टम
! Processor architectures
! प्रोसेसर आर्किटेक्चर
! Operating system versions
! ऑपरेटिंग सिस्टम संस्करण
! Compilers
! संकलक
|- valign="top"
|- valign="top"
| rowspan="3" | Solaris
| rowspan="3" | सोलारिस
|- valign="top"
|- valign="top"
| Sun UltraSPARC
| सन अल्ट्रास्पार्क
| '''Solaris 11''' base through 11.4<br />'''Solaris 10''' base through U11<br />
| '''सोलारिस 11''' आधार के माध्यम से 11.4<br />'''सोलारिस 10''' आधार के माध्यम से U11<br />
| ''' Sun C/C++''' 5.8 through 5.15<br />''' GNU gcc/g++''' 4 and 5<br />
| ''' सन C/C++''' 5.8 द्वारा 5.15<br />''' जीएनयू gcc/g++''' 4 and 5<br />
|- valign="top"
|- valign="top"
| AMD64<br />Intel 64
| एएमडी64
| '''Solaris 11''' base through 11.4<br />'''Solaris 10''' U6 through U11<br />
इंटेल 64
| '''Sun C/C++''' 5.8 through 5.15<br />'''GNU gcc/g++''' 4 through 8<br />
| '''सोलारिस 11''' आधार के माध्यम से 11.4<br />'''सोलारिस 10''' U6 द्वारा U11<br />
| '''सन C/C++''' 5.8 द्वारा 5.15<br />'''जीएनयू gcc/g++''' 4 द्वारा 8<br />
|- valign="top"
|- valign="top"
| rowspan="3" | Linux
| rowspan="3" | लिनक्स
|- valign="top"
|- valign="top"
| Intel IA-32
| इंटेल IA-32
|'''RHEL 8''' (Server/Desktop) base through 8.3<br />'''RHEL 7''' (Server/Desktop) base through 7.9<br /> '''RHEL 6''' (Server/Desktop) base through 6.10<br />'''SLES 12''' base through SP4<br/>'''SLES 11''' base through SP3
|'''आरएचईएल 8''' (सर्वर/डेस्कटॉप) आधार के माध्यम से 8.3<br />'''आरएचईएल 7''' (सर्वर/डेस्कटॉप) आधार के माध्यम से 7.9<br /> '''आरएचईएल 6''' (सर्वर/डेस्कटॉप) आधार के माध्यम से 6.10<br />'''एसएलईएस 12''' आधार के माध्यम से SP4<br/>'''एसएलईएस 11''' आधार के माध्यम से SP3
| '''GNU gcc/g++''' 4 through 8<br />'''Intel icc''' 11.0 through 11.1
| '''जीएनयू gcc/g++''' 4 द्वारा 8<br />'''इंटेल icc''' 11.0 द्वारा 11.1
|- valign="top"
|- valign="top"
| AMD64<br />Intel 64
| एएमडी64
| '''RHEL 8''' (Server/Desktop) base through 8.3<br />'''RHEL 7''' (Server/Desktop) base through 7.9<br /> '''RHEL 6''' (Server/Desktop) base through 6.10<br />'''SLES 12''' base through SP4<br/>'''SLES 11''' base through SP3
इंटेल 64
| '''GNU gcc/g++''' 4 through 8<br />'''Intel icc''' 11.0 through 11.1
| '''आरएचईएल 8''' (सर्वर/डेस्कटॉप) आधार के माध्यम से 8.3<br />'''आरएचईएल 7''' (सर्वर/डेस्कटॉप) आधार के माध्यम से 7.9<br /> '''आरएचईएल 6''' (सर्वर/डेस्कटॉप) आधार के माध्यम से 6.10<br />'''एसएलईएस 12''' आधार के माध्यम से SP4<br/>'''एसएलईएस 11''' आधार के माध्यम से SP3
| '''जीएनयू gcc/g++''' 4 द्वारा 8<br />'''इंटेल icc''' 11.0 द्वारा 11.1
|- valign="top"
|- valign="top"
| rowspan="2" | Windows
| rowspan="2" | विंडोज
|- valign="top"
|- valign="top"
| Intel IA-32<br/>Intel 64<br/>AMD 64
| आईए-32
| '''Microsoft Windows 10''' base through 21H1<br />'''Microsoft Windows 8''' base through 8.1<br />'''Microsoft Windows Server 2019''' Standard, Data Center<br />'''Microsoft Windows Server 2016''' Standard, Data Center<br />'''Microsoft Windows Server 2012''' Foundation, Essential, Standard, Data Center<br />'''Microsoft Windows Server 2008''' Enterprise, Standard, Data Center, base through SP2<br />'''Microsoft Windows Server 2008 R2''' Foundation, Enterprise, Standard, Data Center, base through SP1<br />
इंटेल 64
| ''' Visual Studio''' 2010 through 2019
 
एएमडी 64
| '''माइक्रोसॉफ्ट विंडोज 10''' आधार के माध्यम से 21H1<br />'''माइक्रोसॉफ्ट विंडोज 8''' आधार के माध्यम से 8.1<br />'''माइक्रोसॉफ्ट विंडोज सर्वर 2019''' मानक, डेटा सेंटर<br />'''माइक्रोसॉफ्ट विंडोज सर्वर 2016''' मानक, डेटा सेंटर<br />'''माइक्रोसॉफ्ट विंडोज सर्वर 2012''' फाउंडेशन, आवश्यक, मानक, डेटा सेंटर<br />'''माइक्रोसॉफ्ट विंडोज सर्वर 2008''' एंटरप्राइज़, मानक, डेटा सेंटर, आधार के माध्यम से SP2<br />'''माइक्रोसॉफ्ट विंडोज सर्वर 2008 R2''' फाउंडेशन, एंटरप्राइज़, मानक, डेटा सेंटर, आधार के माध्यम से SP1<br />
| ''' विजुअल स्टूडियो''' 2010 द्वारा 2019
|}
|}


 
=== समर्थित जावा/.नेट प्लेटफॉर्म्स ===
=== समर्थित Java/.NET प्लेटफॉर्म्स ===
{| class="wikitable"
{| class="wikitable"
! Platform
! प्लैटफ़ॉर्म
! Data collection type
! डेटा संग्रह प्रकार
! Runtime environment
! रनटाइम वातावरण
|- valign="top"
|- valign="top"
| rowspan="4" | Windows
| rowspan="4" | विंडोज
|- valign="top"
|- valign="top"
| '''C/C++''' (unmanaged code) data collection
| '''C/C++''' (अप्रबंधित कोड) डेटा संग्रह
| '''Microsoft Visual Studio''' 2010 through 2019
| '''माइक्रोसॉफ्ट विजुअल स्टूडियो''' 2010 द्वारा 2019
|- valign="top"
|- valign="top"
| '''Java''' code coverage data collection
| जावा कोड कवरेज डेटा संग्रह
| '''IBM JRE''' 5 through 8<br />'''SUN JRE''' 1.5 through 1.8
| '''आईबीएम जेआरई''' 5 द्वारा 8<br />'''सन जेरे''' 1.5 द्वारा 1.8
|- valign="top"
|- valign="top"
| '''.NET''' (managed code) data collection
| .नेट (प्रबंधित कोड) डेटा संग्रह
| '''.NET Framework''' 3.0 through 4.5 used with '''Microsoft Visual Studio''' 2010 through 2019
| '''.नेट फ्रेमवर्क''' 3.0 द्वारा 4.5 के साथ प्रयोग किया गया '''माइक्रोसॉफ्ट विजुअल स्टूडियो''' 2010 द्वारा 2019
|}
|}


== यह भी देखें ==
== यह भी देखें ==
Line 94: Line 97:
* मेमोरी डीबगर
* मेमोरी डीबगर
* [[प्रोग्रामिंग टूल]]
* [[प्रोग्रामिंग टूल]]
* [[गतिशील स्मृति]]
* [[गतिशील स्मृति|गतिशील मेमोरी]]
* स्मृति रिसाव
* मेमोरी रिसाव


==संदर्भ==
==संदर्भ==

Revision as of 16:55, 23 June 2023

यूनिकॉम प्योरिफाईप्लस
Original author(s)प्योर सॉफ्टवेयर
Developer(s)यूनिकॉम सिस्टम्स, यूनिकॉम ग्लोबल का एक प्रभाग
Stable release
8.1 / अगस्त1, 2021
Operating systemविंडोज़, लिनक्स, सोलारिस
Typeमेमोरी डिबगर
Licenseप्रोपर्टी सॉफ़्टवेयर
Websitewww.teamblue.unicomsi.com/products/purifyplus/

प्योरिफाईप्लस मेमोरी डिबगर प्रोग्राम है जिसका उपयोग सॉफ़्टवेयर डेवलपर्स द्वारा प्रोग्राम में मेमोरी एक्सेस एरर का पता लगाने के लिए किया जाता है, विशेष रूप से C (प्रोग्रामिंग लैंग्वेज) या C++ में लिखे गए है। यह मूल रूप से प्योर सॉफ्टवेयर के रीड हेस्टिंग्स द्वारा लिखा गया था।[1] प्योर सॉफ्टवेयर को बाद में प्योर एट्रिया सॉफ्टवेयर बनाने के लिए एट्रिया सॉफ्टवेयर के साथ विलय कर दिया गया था, जिसे बाद में यूनिकॉम सॉफ्टवेयर द्वारा अधिग्रहित कर लिया गया था, जिसे बाद में आईबीएम द्वारा अधिग्रहित कर लिया गया था, और फिर 31 दिसंबर, 2014 को यूनिकॉम सिस्टम्स, इंक. को बेच दिया गया था। यह कार्यात्मक रूप से समान है अन्य मेमोरी डिबगर्स के लिए, जैसे इनस्योर++, वालग्रिंड और बाउंड्सचेकर है।

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

अवलोकन

प्योरिफाईप्लस डायनेमिक सत्यापन की अनुमति देता है, प्रक्रिया जिसके द्वारा प्रोग्राम उन त्रुटियों का पता लगाता है जो प्रोग्राम के चलने पर होती हैं, बहुत सीमा तक डिबगर की तरह स्थिर सत्यापन या स्थिर कोड विश्लेषण, इसके विपरीत, केवल तार्किक विसंगतियों की खोज करके, बिना संकलन या इसे चलाए स्रोत कोड में त्रुटियों का पता लगाना सम्मिलित है। C (प्रोग्रामिंग लैंग्वेज) संकलक द्वारा टाइप चेकिंग स्टैटिक वेरिफिकेशन का उदाहरण है।

जब कोई प्रोग्राम प्योरिफाईप्लस के साथ लिंकर (कंप्यूटिंग) होता है, जिससे लाइब्रेरी सहित वस्तु कोड को पार्स करके और जोड़कर निष्पादन योग्य में सही सत्यापन कोड स्वचालित रूप से डाला जाता है। इस तरह, यदि कोई मेमोरी त्रुटि होती है, जिससे प्रोग्राम त्रुटि के स्पष्ट स्थान, सम्मिलित मेमोरी एड्रेस और अन्य प्रासंगिक जानकारी को प्रिंट करता है। प्योरिफाईप्लस मेमोरी रिसाव का भी पता लगाता है। डिफ़ॉल्ट रूप से, लीक रिपोर्ट प्रोग्राम से बाहर निकलने पर उत्पन्न होती है, किन्तु इंस्ट्रूमेंटेड एप्लिकेशन के अन्दर से प्योरिफाईप्लस लीक-डिटेक्शन एपीआई को कॉल करके भी उत्पन्न की जा सकती है।

प्योरिफाईप्लस जिन त्रुटियों का पता लगाता है, उनमें सरणी सीमाएँ पढ़ना और लिखना सम्मिलित है, असंबद्ध मेमोरी तक पहुँचने की प्रयास करना, असंबद्ध मेमोरी को मुक्त करना (सामान्यतः दूसरी बार उसी मेमोरी को मुक्त करने के कारण), साथ ही मेमोरी लीक (बिना किसी सूचक संदर्भ के आवंटित मेमोरी) इन त्रुटियों में से अधिकांश घातक नहीं हैं (कम से कम त्रुटि के स्थान पर नहीं), और अधिकांशतः प्रोग्राम चलाते समय उनका पता लगाने का कोई विधि नहीं होती है, इसके कि गलत प्रोग्राम व्यवहार के कारण कुछ गलत है। इसलिए प्योरिफाईप्लस इन त्रुटियों का पता लगाने और प्रोग्रामर को यह बताने में सहायता करता है कि वे कहाँ होती हैं। क्योंकि प्योरिफाईप्लस सभी ऑब्जेक्ट कोड को इंस्ट्रुमेंट करके काम करता है, यह उन त्रुटियों का पता लगाता है जो तृतीय-पक्ष या ऑपरेटिंग सिस्टम लाइब्रेरी के अंदर होती हैं। ये त्रुटियां अधिकांशतः प्रोग्रामर द्वारा लाइब्रेरी कॉल के लिए गलत तर्क पारित करने, या पुस्तकालयों द्वारा उपयोग किए जाने वाले डेटा संरचनाओं को मुक्त करने के लिए प्रोटोकॉल के बारे में गलतफहमी के कारण होती हैं। ये अधिकांशतः खोजने और ठीक करने में सबसे कठिन त्रुटियां होती हैं।

पारंपरिक डिबगर्स से अंतर

गैर-घातक त्रुटियों का पता लगाने की क्षमता प्योरिफाईप्लस और सामान्य डिबगर्स से समान कार्यक्रमों के बीच प्रमुख अंतर है। इसके विपरीत, डिबगर्स आम तौर पर केवल प्रोग्रामर को घातक त्रुटियों के स्रोतों को जल्दी से खोजने की अनुमति देते हैं, जैसे कि अशक्त सूचक (कंप्यूटर प्रोग्रामिंग) को संदर्भित करने के कारण प्रोग्राम क्रैश, किन्तु गैर-घातक मेमोरी त्रुटियों का पता लगाने में सहायता नहीं करते हैं। डिबगर्स उन अन्य चीजों के लिए उपयोगी होते हैं जिनके लिए प्योरिफाईप्लस का प्रयोजन नहीं है, जैसे कि कोड लाइन के माध्यम से लाइन के माध्यम से आगे बढ़ना या निष्पादन के किसी विशेष क्षण में प्रोग्राम की मेमोरी को हाथ से जांचना होता है। दूसरे शब्दों में, ये उपकरण कुशल डेवलपर के लिए एक दूसरे के पूरक हो सकते हैं।

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

यह ध्यान देने योग्य है कि प्योरिफाईप्लस का उपयोग प्रोग्रामिंग भाषाओं में सबसे अधिक समझ में आता है जो मेमोरी प्रबंधन को प्रोग्रामर पर छोड़ देता है। इसलिए, जावा (प्रोग्रामिंग भाषा) , लिस्प प्रोग्रामिंग भाषा या मूल दृश्य में, उदाहरण के लिए, स्वचालित मेमोरी प्रबंधन किसी भी मेमोरी लीक की घटना को कम करता है। चूँकि इन भाषाओं में अभी भी रिसाव हो सकता है; वस्तुओं के अनावश्यक संदर्भ मेमोरी को पुनः आवंटित होने से रोकेंगे। इस प्रकार की त्रुटियों को प्रदर्शित करने के लिए आईबीएम के पास रैशनल एप्लिकेशन डेवलपर नामक उत्पाद है।

समर्थित प्लेटफॉर्म

समर्थित सी/सी++ प्लेटफॉर्म

ऑपरेटिंग सिस्टम प्रोसेसर आर्किटेक्चर ऑपरेटिंग सिस्टम संस्करण संकलक
सोलारिस
सन अल्ट्रास्पार्क सोलारिस 11 आधार के माध्यम से 11.4
सोलारिस 10 आधार के माध्यम से U11
सन C/C++ 5.8 द्वारा 5.15
जीएनयू gcc/g++ 4 and 5
एएमडी64

इंटेल 64

सोलारिस 11 आधार के माध्यम से 11.4
सोलारिस 10 U6 द्वारा U11
सन C/C++ 5.8 द्वारा 5.15
जीएनयू gcc/g++ 4 द्वारा 8
लिनक्स
इंटेल IA-32 आरएचईएल 8 (सर्वर/डेस्कटॉप) आधार के माध्यम से 8.3
आरएचईएल 7 (सर्वर/डेस्कटॉप) आधार के माध्यम से 7.9
आरएचईएल 6 (सर्वर/डेस्कटॉप) आधार के माध्यम से 6.10
एसएलईएस 12 आधार के माध्यम से SP4
एसएलईएस 11 आधार के माध्यम से SP3
जीएनयू gcc/g++ 4 द्वारा 8
इंटेल icc 11.0 द्वारा 11.1
एएमडी64

इंटेल 64

आरएचईएल 8 (सर्वर/डेस्कटॉप) आधार के माध्यम से 8.3
आरएचईएल 7 (सर्वर/डेस्कटॉप) आधार के माध्यम से 7.9
आरएचईएल 6 (सर्वर/डेस्कटॉप) आधार के माध्यम से 6.10
एसएलईएस 12 आधार के माध्यम से SP4
एसएलईएस 11 आधार के माध्यम से SP3
जीएनयू gcc/g++ 4 द्वारा 8
इंटेल icc 11.0 द्वारा 11.1
विंडोज
आईए-32

इंटेल 64

एएमडी 64

माइक्रोसॉफ्ट विंडोज 10 आधार के माध्यम से 21H1
माइक्रोसॉफ्ट विंडोज 8 आधार के माध्यम से 8.1
माइक्रोसॉफ्ट विंडोज सर्वर 2019 मानक, डेटा सेंटर
माइक्रोसॉफ्ट विंडोज सर्वर 2016 मानक, डेटा सेंटर
माइक्रोसॉफ्ट विंडोज सर्वर 2012 फाउंडेशन, आवश्यक, मानक, डेटा सेंटर
माइक्रोसॉफ्ट विंडोज सर्वर 2008 एंटरप्राइज़, मानक, डेटा सेंटर, आधार के माध्यम से SP2
माइक्रोसॉफ्ट विंडोज सर्वर 2008 R2 फाउंडेशन, एंटरप्राइज़, मानक, डेटा सेंटर, आधार के माध्यम से SP1
विजुअल स्टूडियो 2010 द्वारा 2019

समर्थित जावा/.नेट प्लेटफॉर्म्स

प्लैटफ़ॉर्म डेटा संग्रह प्रकार रनटाइम वातावरण
विंडोज
C/C++ (अप्रबंधित कोड) डेटा संग्रह माइक्रोसॉफ्ट विजुअल स्टूडियो 2010 द्वारा 2019
जावा कोड कवरेज डेटा संग्रह आईबीएम जेआरई 5 द्वारा 8
सन जेरे 1.5 द्वारा 1.8
.नेट (प्रबंधित कोड) डेटा संग्रह .नेट फ्रेमवर्क 3.0 द्वारा 4.5 के साथ प्रयोग किया गया माइक्रोसॉफ्ट विजुअल स्टूडियो 2010 द्वारा 2019

यह भी देखें

संदर्भ

  1. Purify: fast detection of memory leaks and access errors. by Reed Hastings and Bob Joyce, Usenix Winter 1992 technical conference.


बाहरी संबंध