प्योरिफाईप्लस: Difference between revisions
No edit summary |
No edit summary |
||
Line 17: | Line 17: | ||
प्योरिफाईप्लस [[मेमोरी डिबगर]] प्रोग्राम है जिसका उपयोग [[ सॉफ़्टवेयर |सॉफ़्टवेयर]] डेवलपर्स द्वारा प्रोग्राम में मेमोरी एक्सेस एरर का पता लगाने के लिए किया जाता है, विशेष रूप से 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|बाउंड्सचेकर]] है। | ||
== अवलोकन == | == अवलोकन == | ||
प्योरिफाईप्लस डायनेमिक सत्यापन की अनुमति देता है, प्रक्रिया जिसके द्वारा प्रोग्राम उन त्रुटियों का पता लगाता है जो प्रोग्राम के चलने पर होती हैं, बहुत सीमा तक [[ डिबगर |डिबगर]] की तरह स्थिर सत्यापन या [[स्थिर कोड विश्लेषण]], इसके विपरीत, केवल तार्किक विसंगतियों की खोज करके, बिना संकलन या इसे चलाए स्रोत कोड में त्रुटियों का पता लगाना सम्मिलित है। C (प्रोग्रामिंग लैंग्वेज) [[ संकलक |संकलक]] द्वारा [[ प्रकार की जाँच |टाइप चेकिंग]] स्टैटिक वेरिफिकेशन का उदाहरण है। | प्योरिफाईप्लस डायनेमिक सत्यापन की अनुमति देता है, प्रक्रिया जिसके द्वारा प्रोग्राम उन त्रुटियों का पता लगाता है जो प्रोग्राम के चलने पर होती हैं, बहुत सीमा तक [[ डिबगर |डिबगर]] की तरह स्थिर सत्यापन या [[स्थिर कोड विश्लेषण]], इसके विपरीत, केवल तार्किक विसंगतियों की खोज करके, बिना संकलन या इसे चलाए स्रोत कोड में त्रुटियों का पता लगाना सम्मिलित है। C (प्रोग्रामिंग लैंग्वेज) [[ संकलक |संकलक]] द्वारा [[ प्रकार की जाँच |टाइप चेकिंग]] स्टैटिक वेरिफिकेशन का उदाहरण है। |
Revision as of 16:57, 23 June 2023
Original author(s) | प्योर सॉफ्टवेयर |
---|---|
Developer(s) | यूनिकॉम सिस्टम्स, यूनिकॉम ग्लोबल का एक प्रभाग |
Stable release | 8.1
/ अगस्त1, 2021 |
Operating system | विंडोज़, लिनक्स, सोलारिस |
Type | मेमोरी डिबगर |
License | प्रोपर्टी सॉफ़्टवेयर |
Website | www |
प्योरिफाईप्लस मेमोरी डिबगर प्रोग्राम है जिसका उपयोग सॉफ़्टवेयर डेवलपर्स द्वारा प्रोग्राम में मेमोरी एक्सेस एरर का पता लगाने के लिए किया जाता है, विशेष रूप से 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 |
यह भी देखें
- मेमोरी डीबगर
- प्रोग्रामिंग टूल
- गतिशील मेमोरी
- मेमोरी रिसाव
संदर्भ
- ↑ Purify: fast detection of memory leaks and access errors. by Reed Hastings and Bob Joyce, Usenix Winter 1992 technical conference.