Core dump
کمپیوٹنگ میں، ایک کور ڈمپ، میموری ڈمپ، کریش ڈمپ، اسٹوریج ڈمپ، سسٹم ڈمپ، یا ABEND ڈمپ ایک مخصوص وقت پر کمپیوٹر پروگرام کی ورکنگ میموری کی ریکارڈ شدہ حالت پر مشتمل ہوتا ہے، عام طور پر جب پروگرام کریش ہو جاتا ہے یا بصورت دیگر غیر معمولی طور پر ختم ہو جاتا ہے۔ عملی طور پر، پروگرام کی حالت کے دیگر کلیدی ٹکڑوں کو عام طور پر ایک ہی وقت میں پھینک دیا جاتا ہے، بشمول پروسیسر رجسٹر، جس میں پروگرام کاؤنٹر اور اسٹیک پوائنٹر، میموری مینجمنٹ کی معلومات، اور دیگر پروسیسر اور آپریٹنگ سسٹم کے جھنڈے اور معلومات شامل ہو سکتی ہیں۔ سنیپ شاٹ ڈمپ (یا سنیپ ڈمپ) ایک میموری ڈمپ ہے جس کی درخواست کمپیوٹر آپریٹر یا رننگ پروگرام کے ذریعے کی جاتی ہے، جس کے بعد پروگرام جاری رہ سکتا ہے۔ کور ڈمپ اکثر کمپیوٹر پروگراموں میں غلطیوں کی تشخیص اور ڈیبگنگ میں مدد کے لیے استعمال ہوتے ہیں۔ بہت سے آپریٹنگ سسٹمز پر، کسی پروگرام میں ایک مہلک رعایت خود بخود کور ڈمپ کو متحرک کر دیتی ہے۔ توسیع کے ذریعے، "کور کو ڈمپ کرنے" کے جملے کا مطلب بہت سے معاملات میں کسی بھی مہلک غلطی سے ہوتا ہے، قطع نظر اس کے کہ پروگرام کی میموری کا ریکارڈ موجود ہے یا نہیں۔ اصطلاح "کور ڈمپ"، "میموری ڈمپ"، یا صرف "ڈمپ" بھی مزید جانچ یا دیگر مقاصد کے لیے خام ڈیٹا کی بڑی مقدار کے کسی بھی آؤٹ پٹ کی نشاندہی کرنے کے لیے لفظی لفظ بن گیا ہے۔ پس منظر یہ نام مقناطیسی کور میموری سے آیا ہے، جو 1950 سے 1970 کی دہائی تک بے ترتیب رسائی میموری کی بنیادی شکل ہے۔ مقناطیسی کور ٹیکنالوجی کے متروک ہونے کے بعد یہ نام طویل عرصے تک برقرار رہا ہے۔ ابتدائی کور ڈمپ میموری کے مندرجات کے کاغذی پرنٹ آؤٹ تھے، جو عام طور پر آکٹل یا ہیکساڈیسیمل نمبروں (ایک "ہیکس ڈمپ") کے کالموں میں ترتیب دیے جاتے تھے، بعض اوقات ان کی تشریحات کے ساتھ مشین زبان کی ہدایات، ٹیکسٹ سٹرنگز، یا اعشاریہ یا فلوٹنگ پوائنٹ نمبرز (cf. جدا کرنے والا)۔ جیسے جیسے میموری کے سائز میں اضافہ ہوا اور پوسٹ مارٹم تجزیہ کی افادیت تیار کی گئی، ڈمپ کو مقناطیسی میڈیا جیسے ٹیپ یا ڈسک پر لکھا گیا۔ صرف قابل اطلاق میموری کے مندرجات کو ظاہر کرنے کے بجائے، جدید آپریٹنگ سسٹم عام طور پر ایک فائل تیار کرتے ہیں جس میں کریش ہونے والے عمل سے تعلق رکھنے والی میموری کی تصویر ہوتی ہے، یا اس عمل سے متعلق ایڈریس اسپیس کے کچھ حصوں کی میموری تصاویر، دیگر معلومات کے ساتھ جیسے پروسیسر رجسٹر، پروگرام کاؤنٹر، سسٹم فلیگ، اور کریش کی بنیادی وجہ کا تعین کرنے میں مفید دیگر معلومات۔ ان فائلوں کو ٹیکسٹ کے طور پر دیکھا جا سکتا ہے، پرنٹ کیا جا سکتا ہے، یا خصوصی ٹولز کے ساتھ تجزیہ کیا جا سکتا ہے جیسے کہ یونیکس اور یونیکس جیسے سسٹمز پر ایلف ڈمپ، لینکس پر اوبیج ڈمپ اور کے ڈمپ، آئی بی ایم زیڈ/او ایس پر آئی پی سی ایس (انٹرایکٹو پروبلم کنٹرول سسٹم)، آئی بی ایم زیڈ/وی ایم پر ڈی وی ایف (ڈمپ ویوئنگ فیسیلٹی)، مائیکروسافٹ ونڈوز پر ون ڈی بی جی، والگرائنڈ، یا دیگر ڈیبگرز۔ کچھ آپریٹنگ سسٹمز میں ایک ایپلیکیشن یا آپریٹر ایپلیکیشن یا آپریٹنگ سسٹم کے ذریعے استعمال ہونے والے تمام اسٹوریج کے بجائے منتخب اسٹوریج بلاکس کے سنیپ شاٹ کی درخواست کر سکتا ہے۔ استعمال بنیادی ڈمپ کئی حالات میں مفید ڈیبگنگ ایڈ کے طور پر کام کر سکتے ہیں۔ ابتدائی اسٹینڈ لون یا بیچ پروسیسنگ سسٹمز پر، کور ڈمپ نے صارف کو ڈیبگنگ کے لیے (بہت مہنگی) کمپیوٹنگ کی سہولت پر اجارہ داری بنائے بغیر کسی پروگرام کو ڈیبگ کرنے کی اجازت دی۔ ایک پرنٹ آؤٹ فرنٹ پینل سوئچز اور لائٹس کا استعمال کرتے ہوئے ڈیبگنگ سے زیادہ آسان بھی ہو سکتا ہے۔ مشترکہ کمپیوٹرز پر، چاہے ٹائم شیئرنگ ہو، بیچ پروسیسنگ ہو، یا سرور سسٹم، کور ڈمپ آپریٹنگ سسٹم کی آف لائن ڈیبگنگ کی اجازت دیتے ہیں، تاکہ سسٹم فوری طور پر دوبارہ کام میں آسکے۔ کور ڈمپ صارف کو بعد میں یا آف سائٹ تجزیہ، یا دیگر کریش کے ساتھ موازنہ کے لیے کریش کو بچانے کی اجازت دیتے ہیں۔ سرایت شدہ کمپیوٹرز کے لیے، کمپیوٹر پر ہی ڈیبگنگ کی حمایت کرنا ناقابل عمل ہو سکتا ہے، اس لیے ڈمپ کا تجزیہ کسی دوسرے کمپیوٹر پر ہو سکتا ہے۔ کچھ آپریٹنگ سسٹم جیسے کہ یونکس کے ابتدائی ورژن ڈیبگرز کو چلانے کے عمل سے منسلک کرنے کی حمایت نہیں کرتے تھے، اس لیے کسی عمل کے میموری کے مندرجات پر ڈیبگر چلانے کے لیے کور ڈمپ ضروری تھے۔ کور ڈمپس کو متحرک میموری الاٹمنٹ کے دوران آزاد کردہ ڈیٹا پر قبضہ کرنے کے لیے استعمال کیا جا سکتا ہے اور اس طرح کسی ایسے پروگرام سے معلومات حاصل کرنے کے لیے استعمال کیا جا سکتا ہے جو اب نہیں چل رہا ہے۔ انٹرایکٹو ڈیبگر کی عدم موجودگی میں، کور ڈمپ کو ایک مستعد پروگرامر براہ راست جانچ سے غلطی کا تعین کرنے کے لیے استعمال کر سکتا ہے۔ سنیپ ڈمپ بعض اوقات ایپلی کیشنز کے لیے تیز اور گندا ڈیبگنگ آؤٹ پٹ ریکارڈ کرنے کا ایک آسان طریقہ ہوتا ہے۔ تجزیہ ایک بنیادی ڈمپ عام طور پر ڈمپ شدہ عمل کے ایڈریس اسپیس کے ڈمپ شدہ علاقوں کے مکمل مواد کی نمائندگی کرتا ہے۔ آپریٹنگ سسٹم پر منحصر ہے، ڈمپ میں میموری کے علاقوں کی تشریح میں مدد کے لیے بہت کم یا کوئی ڈیٹا ڈھانچہ نہیں ہو سکتا ہے۔ ان نظاموں میں، کامیاب تشریح کے لیے ضروری ہے کہ ڈمپ کی تشریح کرنے کی کوشش کرنے والا پروگرام یا صارف پروگرام کے میموری کے استعمال کی ساخت کو سمجھے۔ ایک ڈیبگر سمبل ٹیبل کا استعمال کر سکتا ہے، اگر کوئی موجود ہو، تو پروگرامر کو ڈمپ کی تشریح کرنے، متغیرات کو علامتی طور پر شناخت کرنے اور سورس کوڈ کو ظاہر کرنے میں مدد کرنے کے لیے ؛ اگر سمبل ٹیبل دستیاب نہیں ہے، تو ڈمپ کی کم تشریح ممکن ہے، لیکن پھر بھی مسئلے کی وجہ کا تعین کرنے کے لیے کافی ممکن ہو سکتا ہے۔ ڈمپ کا تجزیہ کرنے کے لیے ڈمپ اینالائزر نامی خصوصی مقاصد کے اوزار بھی موجود ہیں۔ ایک مقبول ٹول، جو بہت سے آپریٹنگ سسٹمز پر دستیاب ہے، جی این یو بائنٹیلز او بی جے ڈمپ ہے۔ جدید یونکس جیسے آپریٹنگ سسٹمز پر، منتظمین اور پروگرامر جی این یو بنوٹیلز بائنری فائل ڈسکرپٹر لائبریری (بی ایف ڈی)، اور جی این یو ڈیبگر (جی ڈی بی) اور او بی جے ڈمپ کا استعمال کرتے ہوئے کور ڈمپ فائلوں کو پڑھ سکتے ہیں جو اس لائبریری کو استعمال کرتے ہیں۔ یہ لائبریری ایک بنیادی ڈمپ سے میموری کے علاقے میں دیئے گئے پتے کے لیے خام ڈیٹا فراہم کرے گی۔ اسے اس میموری کے علاقے میں متغیرات یا ڈیٹا ڈھانچے کے بارے میں کچھ نہیں معلوم ہے، لہذا بنیادی ڈمپ کو پڑھنے کے لیے لائبریری کا استعمال کرنے والی ایپلی کیشن کو متغیرات کے پتے کا تعین کرنا ہوگا اور ڈیٹا ڈھانچے کی ترتیب کا تعین کرنا ہوگا، مثال کے طور پر ڈیبگنگ سے گزرنے والے پروگرام کے لیے علامتی ٹیبل کا استعمال کرکے۔ لینکس سسٹمز سے کریش ڈمپ کے تجزیہ کار کے ڈمپ یا لینکس کرنل کریش ڈمپ (ایل کے سی ڈی) استعمال کر سکتے ہیں۔ کور ڈمپ کسی عمل کے سیاق و سباق (حالت) کو کسی دی گئی حالت میں بعد میں اس پر واپس آنے کے لیے محفوظ کر سکتے ہیں۔ پروسیسرز کے درمیان کور کی منتقلی کے ذریعے سسٹمز کو انتہائی دستیاب کیا جا سکتا ہے، بعض اوقات خود کور ڈمپ فائلوں کے ذریعے۔ کور کو نیٹ ورک کے ذریعے ریموٹ میزبان پر بھی پھینک دیا جا سکتا ہے (جو کہ حفاظتی خطرہ ہے)۔ کور ڈمپ فائلیں فارمیٹ پرانے اور آسان آپریٹنگ سسٹمز میں، ہر عمل میں ایک ملحقہ ایڈریس اسپیس ہوتی تھی، اس لیے ڈمپ فائل بعض اوقات صرف ایک فائل ہوتی تھی جس میں بائٹس، ہندسوں، حروف یا الفاظ کی ترتیب ہوتی تھی۔ دیگر ابتدائی مشینوں پر ایک ڈمپ فائل میں مجرد ریکارڈ ہوتے تھے، جن میں سے ہر ایک میں اسٹوریج کا پتہ اور متعلقہ مواد ہوتا تھا۔ ابتدائی مشینوں پر، ڈمپ اکثر ایپلی کیشن یا آپریٹنگ سسٹم کے بجائے اسٹینڈ الون ڈمپ پروگرام کے ذریعے لکھا جاتا تھا۔ آئی بی ایم سسٹم/360 پر، معیاری آپریٹنگ سسٹم نے ای بی ای این ڈی اور ایس این اے پی ڈمپ کی شکل میں لکھا، پتے، رجسٹر، اسٹوریج کے مندرجات وغیرہ کے ساتھ، سب کو پرنٹ کرنے کے قابل شکلوں میں تبدیل کیا گیا۔ بعد کی ریلیزز نے غیر فارمیٹڈ ڈمپ لکھنے کی صلاحیت کو شامل کیا، جسے اس وقت کور امیج ڈمپ کہا جاتا تھا۔ جدید آپریٹنگ سسٹمز میں، ایک عمل ایڈریس کی جگہ میں خلاء ہو سکتے ہیں، اور یہ صفحات کو دوسرے عمل یا فائلوں کے ساتھ شیئر کر سکتا ہے، اس لیے مزید تفصیلی نمائشیں استعمال کی جاتی ہیں۔ ان میں ڈمپ کے وقت پروگرام کی حالت کے بارے میں دیگر معلومات بھی شامل ہو سکتی ہیں۔ یونکس جیسے سسٹمز میں، کور ڈمپ عام طور پر معیاری قابل عمل امیج فارمیٹ کا استعمال کرتے ہیں: یونکس کے پرانے ورژن میں a.out، جدید لینکس میں ELF، سسٹم V، سولرس، اور BSD سسٹمز، میک او ایس میں میک-او وغیرہ۔ او ایس/360 اور جانشینوں کا نام رکھنا او ایس/360 اور جانشینوں میں، ایک نوکری فارمیٹڈ اے بی ای این ڈی ڈمپ کے لیے ڈی ڈی ناموں سسابینڈ اور سسپ کو صوابدیدی ڈیٹا سیٹ نام (ڈی ایس این) تفویض کر سکتی ہے اور ایس این اے پی ڈمپ کے لیے صوابدیدی ڈی ڈی ناموں کو، یا ان ڈی ڈی ناموں کو سسٹ کے طور پر بیان کر سکتی ہے۔ نقصان کی تشخیص اور مرمت (ڈی اے آر) کی سہولت نے ناکامی کے وقت ڈیٹا سیٹ SYS1.DUMP میں ایک خودکار غیر فارمیٹڈ اسٹوریج ڈمپ کے ساتھ ساتھ آپریٹر کی طرف سے درخواست کردہ کنسول ڈمپ کو بھی شامل کیا۔ نیا ٹرانزیکشن ڈمپ ڈمپ کی پرانی شکلوں سے بہت ملتا جلتا ہے۔ انٹرایکٹو پروبلم کنٹرول سسٹم (آئی پی سی ایس)، جسے سلیکٹ ایبل یونٹ (ایس یو) 57 کے ذریعے او ایس/وی ایس 2 میں شامل کیا گیا ہے اور اس کے بعد کے ہر ایم وی ایس ریلیز کا حصہ، ڈی اے ایس ڈی پر اسٹوریج ڈمپ کا انٹرایکٹو تجزیہ کرنے کے لیے استعمال کیا جا سکتا ہے۔ آئی پی سی ایس سسٹم کنٹرول بلاکس کی شکل اور تعلقات کو سمجھتا ہے، اور تجزیہ کے لیے فارمیٹڈ ڈسپلے تیار کر سکتا ہے۔ آئی پی سی ایس کے موجودہ ورژن پہلے اسٹوریج ڈمپ لیے بغیر فعال ایڈریس خالی جگہوں کے معائنے کی اجازت دیتے ہیں۔ یونکس کی طرح چونکہ سولارس 8، سسٹم یوٹیلیٹی کور ایڈم بنیادی فائلوں کے نام اور مقام کو ترتیب دینے کی اجازت دیتا ہے۔ صارف کے عمل کے ڈمپ روایتی طور پر بنیادی طور پر بنائے جاتے ہیں۔ لینکس پر (لینکس کرنل مین لائن کے ورژن 2.4.21 اور 2.6 کے بعد سے)، ایک مختلف نام/پروک/سس/کرنل/کور _ پیٹرن کنفیگریشن فائل کا استعمال کرتے ہوئے پروک ایف ایس کے ذریعے متعین کیا جا سکتا ہے۔ مخصوص نام ایک ٹیمپلیٹ بھی ہو سکتا ہے جس میں ٹیگز شامل ہوتے ہیں، مثال کے طور پر، قابل عمل فائل کا نام، پروسیس آئی ڈی، یا ڈمپ کی وجہ۔ جدید یونکس جیسے سسٹمز پر سسٹم وسیع ڈمپ اکثر وی ایم کور یا vmcore.incomplete کے طور پر ظاہر ہوتے ہیں۔ دیگر سسٹمز جیسے مائیکروسافٹ ونڈوز، جو فائل نام کی ایکسٹینشنز استعمال کرتے ہیں، ایکسٹینشن. ڈی ایم پی استعمال کر سکتے ہیں ؛ مثال کے طور پر، کور ڈمپ کو memory.dmp یا \Minidump\ Mini051509-01.dmp کا نام دیا جا سکتا ہے۔ ونڈوز میموری ڈمپ مائیکروسافٹ ونڈوز دو میموری ڈمپ فارمیٹس کی حمایت کرتا ہے، جو ذیل میں بیان کیے گئے ہیں۔ کرنل موڈ ڈمپ پانچ قسم کے کرنل موڈ ڈمپ ہوتے ہیں: مکمل میموری ڈمپ میں ٹارگٹ سسٹم کے لیے مکمل فزیکل میموری ہوتی ہے۔ دانا میموری ڈمپ میں وہ تمام میموری ہوتی ہے جو کریش کے وقت دانا استعمال کرتا ہے۔ چھوٹے میموری ڈمپ میں مختلف معلومات ہوتی ہیں جیسے اسٹاپ کوڈ، پیرامیٹرز، لوڈ شدہ ڈیوائس ڈرائیوروں کی فہرست وغیرہ۔ آٹومیٹک میموری ڈمپ (ونڈوز 8 اور اس کے بعد کا) کرنل میموری ڈمپ کی طرح ہے، لیکن اگر پیجنگ فائل سسٹم مینجڈ اور کرنل میموری ڈمپ پر قبضہ کرنے کے لیے بہت چھوٹی ہے، تو یہ خود بخود پیجنگ فائل کو کم از کم چار ہفتوں تک رام کے سائز تک بڑھا دے گی، پھر اسے چھوٹے سائز تک کم کر دے گی۔ فعال میموری ڈمپ (ونڈوز 10 اور اس کے بعد کے) میں زیادہ تر میموری ہوتی ہے جو کرنل اور یوزر موڈ ایپلی کیشنز کے ذریعے استعمال ہوتی ہے۔ ونڈوز کرنل موڈ ڈمپ کا تجزیہ کرنے کے لیے ونڈوز کے لیے ڈیبگنگ ٹولز استعمال کیے جاتے ہیں۔ یوزر موڈ میموری ڈمپ، جسے منی ڈمپ بھی کہا جاتا ہے، ایک واحد عمل کی میموری ڈمپ ہے۔ اس میں منتخب ڈیٹا ریکارڈز ہوتے ہیں: مکمل یا جزوی (فلٹر شدہ) پروسیس میموری ؛ تھریڈز کی فہرست ان کے کال اسٹیکس اور اسٹیٹ کے ساتھ (جیسے رجسٹر یا ٹی ای بی) ؛ دانا آبجیکٹ کے ہینڈلز کے بارے میں معلومات ؛ بھری ہوئی اور ان لوڈ شدہ لائبریریوں کی فہرست۔ MINIDUMP _ TYPE enum میں دستیاب اختیارات کی مکمل فہرست۔ ناسا کا وائجر پروگرام شاید پہلا دستہ تھا جس نے ڈیپ اسپیس کے حصے میں بنیادی ڈمپ کی خصوصیت کو معمول کے مطابق استعمال کیا۔ کور ڈمپ فیچر ڈیپ اسپیس سیگمنٹ کے لیے ایک لازمی ٹیلی میٹری فیچر ہے کیونکہ یہ سسٹم کے تشخیصی اخراجات کو کم کرنے کے لیے ثابت ہوا ہے۔ وائجر کرافٹ کائناتی شعاعوں کے واقعات سے میموری کو پہنچنے والے نقصان کا پتہ لگانے کے لیے معمول کے بنیادی ڈمپ کا استعمال کرتا ہے۔ اسپیس مشن کور ڈمپ سسٹم زیادہ تر ٹارگٹ سی پی یو یا سب سسٹم کے لیے موجودہ ٹول کٹ پر مبنی ہوتے ہیں۔ تاہم، کسی مشن کی مدت کے دوران کور ڈمپ سب سسٹم کو مشن کی مخصوص ضروریات کے لیے کافی حد تک تبدیل یا بڑھایا جا سکتا ہے۔ ڈیٹا بیس ڈمپ ہیکس ڈمپ فائل کاپی حوالہ جات نوٹ بیرونی لنکس فائل فارمیٹ منی ڈمپ فائلوں کی تفصیل کرنل کور ڈمپ: ایپل ٹیکنیکل نوٹ ٹی این 2118: کرنل کور ڈمپس ڈیبگنگ کمپیوٹر ایرر