कोर डंप: Difference between revisions

From Vigyanwiki
Line 102: Line 102:
* नए ट्रांजैक्शन डंप पुराने प्रकार के डंप के समान है।
* नए ट्रांजैक्शन डंप पुराने प्रकार के डंप के समान है।


==== यूनिक्स की तरह ====
==== यूनिक्स जैसा ====
* सोलारिस 8 के बाद से, सिस्टम उपयोगिता <code>coreadm</code> कोर फाइलों के नाम और स्थान को कॉन्फ़िगर करने की अनुमति देता है।
* सोलारिस 8 के बाद से, सिस्टम उपयोगिता <code>coreadm</code> कोर फाइलों के नाम और स्थान को कॉन्फ़िगर करने की अनुमति देता है।
* उपयोगकर्ता प्रक्रियाओं के डंप पारंपरिक रूप से बनाए जाते हैं <code>core</code>. लिनक्स पर ([[लिनक्स कर्नेल मेनलाइन]] के संस्करण 2.4.21 और 2.6 के बाद से), [[procfs]] के माध्यम से एक अलग नाम निर्दिष्ट किया जा सकता है <code>/proc/sys/kernel/core_pattern</code> विन्यास फाइल; निर्दिष्ट नाम एक टेम्प्लेट भी हो सकता है जिसमें टैग्स को प्रतिस्थापित किया जाता है, उदाहरण के लिए, निष्पादन योग्य फ़ाइल नाम, प्रक्रिया आईडी, या डंप का कारण।<ref>{{cite web
* उपयोगकर्ता <code>core</code> प्रक्रियाओं के डंप, पारंपरिक रूप से बनाए जाते हैं। लिनक्स पर (लिनक्स कर्नल मेनलाइन के 2.4.21 और 2.6 संस्करण से), <code>/proc/sys/kernel/core_pattern</code> विन्यास फ़ाइल का उपयोग करके procfs के माध्यम से एक अलग नाम निर्दिष्ट किया जा सकता है; निर्दिष्ट नाम टेम्पलेट भी हो सकता है जिसमें टैग सम्मिलित होते हैं जो उदाहरण के लिए एक्जीक्यूटेबल फ़ाइल का नाम, प्रोसेस आईडी या डंप के कारण द्वारा प्रतिस्थापित किए जाते हैं।<ref>{{cite web
  | url = http://man7.org/linux/man-pages/man5/core.5.html
  | url = http://man7.org/linux/man-pages/man5/core.5.html
  | title = core(5) – Linux manual page
  | title = core(5) – Linux manual page
Line 114: Line 114:
  | url-status = live
  | url-status = live
  }}</ref>
  }}</ref>
* आधुनिक यूनिक्स जैसी प्रणालियों पर सिस्टम-वाइड डंप अक्सर दिखाई देते हैं <code>vmcore</code> या <code>vmcore.incomplete</code>.
* आधुनिक यूनिक्स जैसी प्रणालियों पर सिस्टम-वाइड डंप <code>vmcore</code> या <code>vmcore.incomplete</code>.प्रायः दिखाई देते हैं


==== अन्य ====
==== अन्य ====
* [[Microsoft Windows]] जैसे सिस्टम, जो [[फ़ाइल नाम एक्सटेंशन]] का उपयोग करते हैं, एक्सटेंशन का उपयोग कर सकते हैं <code>.dmp</code>; उदाहरण के लिए, कोर डंप का नाम दिया जा सकता है <code>memory.dmp</code> या <code>\Minidump\Mini051509-01.dmp</code>.
* माइक्रोसॉफ्ट विंडोज़ जैसे सिस्टम, जो [[फ़ाइल नाम एक्सटेंशन]] का उपयोग करते हैं, <code>.dmp</code> एक्सटेंशन का उपयोग कर सकते हैं ; उदाहरण के लिए, <code>memory.dmp</code> या <code>\Minidump\Mini051509-01.dmp</code> को कोर डंप का नाम दिया जा सकता है


=== विंडोज मेमोरी डंप ===
=== विंडोज मेमोरी डंप ===
Microsoft Windows नीचे वर्णित दो मेमोरी डंप स्वरूपों का समर्थन करता है।
माइक्रोसॉफ्ट विंडोज़ नीचे वर्णित दो मेमोरी डंप स्वरूपों का समर्थन करता है।


==== कर्नेल-मोड डंप ====
==== कर्नेल-विधा डंप ====
{{Main article|Blue Screen of Death}}
{{Main article|Blue Screen of Death}}



Revision as of 11:34, 4 May 2023

संगणनीयता में, कोर डंप, मेमोरी डंप, क्रैश डंप, स्टोरेज डंप, सिस्टम डंप या एबेंड डंप किसी ऐसे निश्चित समय पर कंप्यूटर प्रोग्राम की कार्य करने वाली मेमोरी की अभिलिखित स्थिति से मिलकर बना होता है, जब सामान्यतः प्रोग्राम अनुपयुक्त रूप से बंद होता है या क्रैश हो जाता है।[1][2] व्यवहार में, संदर्भ स्विच के साथ-साथ प्रोसेसर रजिस्टर के अन्य प्रमुख भाग सामान्यतः एक ही समय में डंप कर दिए जाते हैं, जिसमें प्रोग्राम गणक और स्टेक सूचक, मेमोरी प्रबंधन जानकारी और अन्य प्रोसेसर और ऑपरेटिंग सिस्टम फ़्लैग और जानकारीया सम्मिलित हो सकती है।स्नैपशॉट डंप या स्नैप डंप एक मेमोरी डंप है जिसे कंप्यूटर ऑपरेटर या चल रहे प्रोग्राम द्वारा अनुरोध किया जाता है, जिसके बाद प्रोग्राम जारी रखने में सक्षम होता है। कंप्यूटर प्रोग्राम में त्रुटियों के निदान और डिबगिंग में सहायता के लिए प्रायः कोर डंप का उपयोग किया जाता है।

कई ऑपरेटिंग सिस्टम पर, प्रोग्राम में घातक अपवाद स्वचालित रूप से कोर डंप को प्रवर्धित करता है। विस्तृत रूप से कहें तों, अत्यधिक स्तिथियों में, अब "कोर-डम्प" शब्दावली का उपयोग किसी भी घातक त्रुटि के लिए किया जाना प्रारंभ हो गया है। आगे की परीक्षा या अन्य उद्देश्यों के लिए बड़ी मात्रा में कच्चे डेटा के किसी भी आउटपुट को इंगित करने के लिए कोर डंप, मेमोरी डंप, या सिर्फ डंप शब्द का प्रयोग होता है।[3][4]


पृष्ठभूमि

यह नाम चुंबकीय-कोर मेमोरी से आता है,[5] जो 1950 से 1970 के दशक तक रैंडम एक्सेस मेमोरी का प्रमुख रूप था। चुंबकीय-कोर तकनीक के अप्रचलित होने के उपरांत यह नाम लंबे समय तक प्रयोग में बना रहा।

प्रारम्भिक कोर डंप, पेपर प्रिंटआउट थे[6] जो मेमोरी की सामग्री को सामान्यतः अष्टभुजाकार या हेक्साडेसिमल संख्या के कॉलम में व्यवस्थित होती थी, कभी-कभी यंत्र भाषा निर्देश, टेक्स्ट स्ट्रिंग्स, या दशमलव या फ़्लोटिंग-पॉइंट नंबर के रूप में उनकी व्याख्या की जाती है।

चूंकि मेमोरी आकार में वृद्धि हुई और पोस्ट-मॉर्टम विश्लेषण उपयोगिताओं का विकास हुआ, टेप या डिस्क जैसे चुंबकीय मीडिया को डंप लिखा गया था।

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

कुछ ऑपरेटिंग सिस्टम में[lower-alpha 1] एक एप्लिकेशन या ऑपरेटर एप्लिकेशन या ऑपरेटिंग सिस्टम द्वारा उपयोग किए जाने वाले सभी स्टोरेज के अतिरिक्त चयनित स्टोरेज ब्लॉक के स्नैपशॉट का अनुरोध किया जा सकता है।

उपयोग

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

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

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

कोर डंप का उपयोग सक्रिय मेमोरी आवंटन के समय मुक्त किए गए डेटा को कैप्चर करने के लिए किया जा सकता है और इस प्रकार इसका उपयोग उस प्रोग्राम से जानकारी प्राप्त करने के लिए किया जा सकता है जो अब नहीं चल रहा है। एक पारस्परिक डीबगर की अनुपस्थिति में, कोर डंप का उपयोग एक प्रोग्रामर द्वारा सीधे परीक्षा से त्रुटि निर्धारित करने के लिए किया जा सकता है।

स्नैप डंप कभी-कभी, अनुप्रयोगों के लिए त्वरित और गंदे डिबगिंग निर्गत रिकॉर्ड करने की एक सुविधाजनक विधि होती है।

विश्लेषण

एक कोर डंप सामान्यतः डंप की गई प्रक्रिया के पता स्थान के डंप किए गए क्षेत्रों की पूरी सामग्री का प्रतिनिधित्व करता है। ऑपरेटिंग सिस्टम के आधार पर, मेमोरी क्षेत्रों की व्याख्या में सहायता के लिए डंप में कुछ या कोई डेटा संरचना नहीं हो सकती है। इन प्रणालियों में, सफल व्याख्या के लिए आवश्यक है कि डंप की व्याख्या करने का प्रयास करने वाला प्रोग्राम या उपयोगकर्ता प्रोग्राम की मेमोरी उपयोग की संरचना को समझे।

एक डिबगर, प्रतीक तालिका उपलब्ध है तों इसका उपयोग प्रोग्रामर को डंप की व्याख्या करने में मदद करने के लिए, प्रतीकात्मक रूप से चर की पहचान करने और स्रोत कोड प्रदर्शित करने के लिए किया जा सकता है; यदि प्रतीक तालिका उपलब्ध नहीं है, तो डंप की व्याख्या पर्याप्त रूप से संभव नहीं है, परंतु समस्या का कारण निर्धारित करने के लिए अभी भी है डंप का उपयोग किया जा सकता है। डंप का विश्लेषण करने के लिए डंप विश्लेषक नामक विशेष प्रयोजन के उपकरण भी हैं। जीएयू बिनुटिल्स का ओब्जडम्प एक ऐसा लोकप्रिय उपकरण है, जो कई ऑपरेटिंग सिस्टम पर उपलब्ध है।

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

लिनक्स सिस्टम से क्रैश डंप के विश्लेषक केडम्प या लिनक्स कर्नेल क्रैश डंप का उपयोग कर सकते हैं।[8]

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

कोर को एक नेटवर्क पर दूरस्थ होस्ट पर भी डंप किया जा सकता है।[9]


कोर-डंप फ़ाइलें

प्रारूप

पुराने और सरल ऑपरेटिंग सिस्टम में, प्रत्येक प्रक्रिया में एक सन्निहित पता-स्थान होता था, इसलिए डंप फ़ाइल कभी-कभी बाइट्स, अंकों, अंकों के अनुक्रम वाली एक फ़ाइल होती थी।[lower-alpha 2] अन्य प्रारम्भिक यंत्रों पर किसी डंप फ़ाइल में असतत रिकॉर्ड होते थे, प्रत्येक में भंडारण का पता और संबंधित सामग्री होती थी। प्रारम्भिक मशीनों पर, डंप प्रायः एप्लिकेशन या ऑपरेटिंग सिस्टम के अतिरिक्त स्टैंड-अलोन डंप प्रोग्राम द्वारा लिखा जाता था।

IBM सिस्टम/360 पर, मानक ऑपरेटिंग सिस्टम ने स्वरूपित अबेन्ड और स्नैप डंप, पते, रजिस्टर, भंडारण सामग्री आदि के साथ, सभी प्रिंट करने योग्य रूपों में परिवर्तित हो गए। बाद में रिलीज ने अप्रारूपित डंप, जिसे उस समय कोर इमेज डंप कहा जाता था लिखने की क्षमता को संयोजित किया[lower-alpha 3]

आधुनिक ऑपरेटिंग सिस्टम में, एक प्रोसेस पता स्थान में अंतराल हो सकते हैं, और यह अन्य प्रक्रियाओं या फाइलों के साथ पृष्ठ सहभाजित कर सकता है, इसलिए अधिक विस्तृत प्रतिनिधित्व का उपयोग किया जाता है; वे डंप के समय कार्यक्रम की स्थिति के बारे में अन्य जानकारी भी सम्मिलित कर सकते हैं।

यूनिक्स जैसी प्रणालियों में, कोर डंप सामान्यतः मानक निष्पादन योग्य छवि-फ़ाइल प्रारूप का उपयोग करते हैं:

नामकरण

OS/360 और उत्तराधिकारी

  • OS/360 और उसके उत्तरदाताओं में, कोई कार्य SYSABEND और SYSUDUMP के लिए संरूपित एबेंड डंप के लिए अनिश्चित डेटा समुच्चय नाम का उपयोग कर सकता है और स्नैप डंप के लिए अनिश्चित ddnames को SYSOUT के रूप में परिभाषित कर सकता है।[lower-alpha 4]
  • डैमेज असेसमेंट एवं रिपेयर (DAR) सुविधा ने विफलता के समय डेटासेट SYS1.DUMP[lower-alpha 5] में स्वचालित रूप से असंरूपित डंप को जोड़ा, जिसे संचालक द्वारा अनुरोधित कंसोल डंप के साथ समाकलित किया गया।[lower-alpha 7]
  • नए ट्रांजैक्शन डंप पुराने प्रकार के डंप के समान है।

यूनिक्स जैसा

  • सोलारिस 8 के बाद से, सिस्टम उपयोगिता coreadm कोर फाइलों के नाम और स्थान को कॉन्फ़िगर करने की अनुमति देता है।
  • उपयोगकर्ता core प्रक्रियाओं के डंप, पारंपरिक रूप से बनाए जाते हैं। लिनक्स पर (लिनक्स कर्नल मेनलाइन के 2.4.21 और 2.6 संस्करण से), /proc/sys/kernel/core_pattern विन्यास फ़ाइल का उपयोग करके procfs के माध्यम से एक अलग नाम निर्दिष्ट किया जा सकता है; निर्दिष्ट नाम टेम्पलेट भी हो सकता है जिसमें टैग सम्मिलित होते हैं जो उदाहरण के लिए एक्जीक्यूटेबल फ़ाइल का नाम, प्रोसेस आईडी या डंप के कारण द्वारा प्रतिस्थापित किए जाते हैं।[11]
  • आधुनिक यूनिक्स जैसी प्रणालियों पर सिस्टम-वाइड डंप vmcore या vmcore.incomplete.प्रायः दिखाई देते हैं

अन्य

  • माइक्रोसॉफ्ट विंडोज़ जैसे सिस्टम, जो फ़ाइल नाम एक्सटेंशन का उपयोग करते हैं, .dmp एक्सटेंशन का उपयोग कर सकते हैं ; उदाहरण के लिए, memory.dmp या \Minidump\Mini051509-01.dmp को कोर डंप का नाम दिया जा सकता है

विंडोज मेमोरी डंप

माइक्रोसॉफ्ट विंडोज़ नीचे वर्णित दो मेमोरी डंप स्वरूपों का समर्थन करता है।

कर्नेल-विधा डंप

पाँच प्रकार के कर्नेल-मोड डंप हैं:[12]

  • पूरी मेमोरी डंप – लक्ष्य प्रणाली के लिए पूर्ण भौतिक मेमोरी समाहित करता है।
  • कर्नेल मेमोरी डंप – क्रैश के समय कर्नेल द्वारा उपयोग की जाने वाली सभी मेमोरी समाहित करता है।
  • छोटी मेमोरी डंप – में स्टॉप कोड, पैरामीटर्स, लोडेड डिवाइस ड्राइवरों की सूची आदि जैसी विभिन्न जानकारी होती है।
  • स्वचालित मेमोरी डंप (विंडोज 8 और बाद में) – कर्नेल मेमोरी डंप के समान, लेकिन यदि पेजिंग #PAGEFILE-SYS सिस्टम प्रबंधित और कर्नेल मेमोरी डंप को कैप्चर करने के लिए बहुत छोटा है, तो यह स्वचालित रूप से पेजिंग फ़ाइल को कम से कम चार सप्ताह के लिए रैम के आकार में बढ़ा देगा, फिर इसे कम करें छोटे आकार के लिए।[13]
  • सक्रिय मेमोरी डंप (Windows 10 और बाद में) – कर्नेल और उपयोगकर्ता मोड अनुप्रयोगों द्वारा उपयोग की जाने वाली अधिकांश मेमोरी सम्मिलित है।

विंडोज कर्नेल-मोड डंप का विश्लेषण करने के लिए WinDbg का उपयोग किया जाता है।[14]


उपयोगकर्ता-मोड मेमोरी डंप

उपयोगकर्ता-मोड मेमोरी डंप, जिसे मिनीडम्प भी कहा जाता है,[15] एकल प्रक्रिया का मेमोरी डंप है। इसमें चयनित डेटा रिकॉर्ड सम्मिलित हैं: पूर्ण या आंशिक (फ़िल्टर्ड) प्रक्रिया मेमोरी; उनके कॉल स्टैक और स्थिति के साथ थ्रेड (कंप्यूटिंग) की सूची (जैसे प्रोसेसर रजिस्टर या Win32 थ्रेड सूचना ब्लॉक); कर्नेल ऑब्जेक्ट्स को हैंडल (कंप्यूटिंग) के बारे में जानकारी; लोडेड और अनलोडेड डायनामिक-लिंक लाइब्रेरी की सूची। में उपलब्ध विकल्पों की पूरी सूची MINIDUMP_TYPE एनुम।[16]


अंतरिक्ष मिशन

डीप स्पेस सेगमेंट में नियमित रूप से कोर डंप सुविधा का उपयोग करने के लिए नासा वोयाजर कार्यक्रम संभवतः पहला शिल्प था। डीप स्पेस सेगमेंट के लिए कोर डंप फीचर एक अनिवार्य टेलीमेट्री फीचर है क्योंकि यह सिस्टम डायग्नोस्टिक कॉस्ट को कम करने के लिए सिद्ध हो चुका है[citation needed]. वायेजर शिल्प ब्रह्मांडीय किरण घटनाओं से स्मृति क्षति का पता लगाने के लिए नियमित कोर डंप का उपयोग करता है।

स्पेस मिशन कोर डंप सिस्टम ज्यादातर लक्षित सीपीयू या सबसिस्टम के लिए मौजूदा टूलकिट पर आधारित होते हैं। हालांकि, किसी मिशन की अवधि के दौरान कोर डंप सबसिस्टम को मिशन की विशिष्ट आवश्यकताओं के लिए पर्याप्त रूप से संशोधित या बढ़ाया जा सकता है।

यह भी देखें


संदर्भ

  1. "AIX 7.1 information".[permanent dead link]
  2. core(4): Process core file – Solaris 10 File Formats Reference Manual
  3. Cory Janssen. "What is a Database Dump? - Definition from Techopedia". Techopedia.com. Archived from the original on 20 August 2015. Retrieved 29 June 2015.