कोर डंप

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

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

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

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

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

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

कुछ ऑपरेटिंग सिस्टम में एक एप्लिकेशन या ऑपरेटर एप्लिकेशन या ऑपरेटिंग सिस्टम द्वारा उपयोग किए जाने वाले सभी स्टोरेज के अतिरिक्त चयनित स्टोरेज खंड के स्नैपशॉट का अनुरोध किया जा सकता है।

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

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

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

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

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

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

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

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

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

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

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

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

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

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

यूनिक्स जैसी प्रणालियों में, कोर डंप सामान्यतः मानक निष्पादन योग्य छवि-फ़ाइल प्रारूप का उपयोग करते हैं:
 * a.out यूनिक्स के पुराने संस्करणों में,
 * आधुनिक लिनक्स, यूनिक्स प्रणाली, सोलारिस, और बीएसडी सिस्टम में निष्पादन योग्य और लिंक करने योग्य प्रारूप,
 * मैक ओएस में मैक-ओ, आदि।

OS/360 तथा परवर्ती ओएस

 * OS/360 और उसके उत्तरदाताओं में, कोई कार्य  और   के लिए संरूपित एबेंड डंप के लिए अनिश्चित डेटा समुच्चय नाम का उपयोग कर सकता है और स्नैप डंप के लिए अनिश्चित ddnames को SYSOUT के रूप में परिभाषित कर सकता है।
 * डैमेज असेसमेंट एवं रिपेयर (DAR) सुविधा ने विफलता के समय डेटासेट  में स्वचालित रूप से असंरूपित डंप को जोड़ा, जिसे संचालक द्वारा अनुरोधित कंसोल डंप के साथ समाकलित किया गया।
 * नए ट्रांजैक्शन डंप पुराने प्रकार के डंप के समान है।

यूनिक्स के समान ऑस

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

अन्य

 * माइक्रोसॉफ्ट विंडोज़ जैसे सिस्टम, जो फ़ाइल नाम एक्सटेंशन का उपयोग करते हैं,  एक्सटेंशन का उपयोग कर सकते हैं ; उदाहरण के लिए,   या   को कोर डंप का नाम दिया जा सकता है

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

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

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

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

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

यह भी देखें

 * डाटाबेस डंप
 * हेक्स डंप
 * फाइल कॉपी करना

बाहरी संबंध
Descriptions of the file format
 * Minidump files
 * Minidump files
 * Minidump files
 * Minidump files
 * Minidump files
 * Minidump files
 * Minidump files
 * Minidump files

Kernel core dumps:
 * Apple Technical Note TN2118: Kernel Core Dumps
 * Apple Technical Note TN2118: Kernel Core Dumps