कोर डंप

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

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

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

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

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

केवल लागू मेमोरी की सामग्री को प्रदर्शित करने के बजाय, आधुनिक ऑपरेटिंग सिस्टम आमतौर पर क्रैश प्रक्रिया से संबंधित मेमोरी की छवि वाली फ़ाइल या उस प्रक्रिया से संबंधित पता स्थान  के हिस्सों की मेमोरी छवियों के साथ-साथ अन्य जानकारी उत्पन्न करते हैं। क्रैश के मूल कारण को निर्धारित करने में उपयोगी प्रोसेसर रजिस्टरों, प्रोग्राम काउंटर, सिस्टम फ्लैग और अन्य जानकारी के मूल्यों के रूप में। इन फ़ाइलों को पाठ के रूप में देखा जा सकता है, मुद्रित किया जा सकता है, या यूनिक्स पर एल्फडम्प और यूनिक्स जैसी प्रणालियों, लिनक्स पर  objdump  और केडम्प (लिनक्स), आईबीएम जेड/ओएस पर आईपीसीएस (इंटरएक्टिव प्रॉब्लम कंट्रोल सिस्टम) जैसे विशेष उपकरणों के साथ विश्लेषण किया जा सकता है। IBM z/VM पर DVF (डंप देखने की सुविधा), Microsoft Windows, Valgrind, या अन्य डिबगर्स पर WinDbg।

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

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

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

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

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

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

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

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

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

लिनक्स सिस्टम से क्रैश डंप के विश्लेषक kdump (Linux) या Linux कर्नेल क्रैश डंप (LKCD) का उपयोग कर सकते हैं। कोर डंप किसी प्रक्रिया के संदर्भ (स्थिति) को बाद में लौटने के लिए किसी दिए गए राज्य में सहेज सकता है। प्रोसेसर के बीच कोर को स्थानांतरित करके सिस्टम को अत्यधिक उपलब्ध कराया जा सकता है, कभी-कभी स्वयं कोर डंप फ़ाइलों के माध्यम से।

कोर को एक नेटवर्क (जो एक सुरक्षा जोखिम है) पर रिमोट होस्ट पर भी डंप किया जा सकता है।

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

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

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

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

 * OS/360 और उत्तराधिकारियों में, एक कार्य मनमाना डेटा सेट नाम (DSNs) ddnames को असाइन कर सकता है  और   स्वरूपित ABEND डंप के लिए और SNAP डंप के लिए स्वैच्छिक ddnames के लिए, या उन ddnames को SYSOUT के रूप में परिभाषित करें।
 * डैमेज असेसमेंट एंड रिपेयर (DAR) सुविधा ने एक स्वचालित असंरूपित जोड़ा डेटासेट में डंप करें  विफलता के साथ-साथ ऑपरेटर द्वारा अनुरोधित कंसोल डंप के समय।
 * नया लेन-देन डंप पुराने प्रकार के डंप के समान है।

यूनिक्स की तरह

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

अन्य

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

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

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

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

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

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

यह भी देखें

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

बाहरी संबंध
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