نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی
  • خانه
  • ویندوز 8
  • استفاده از حافظه خالی برای تشخیص خرابی ها. خرابی ویندوز

استفاده از حافظه خالی برای تشخیص خرابی ها. خرابی ویندوز

هر چند وقت یکبار صفحه Windows Death (BSoD) را می بینید؟ BSoD می تواند در موارد مختلف رخ دهد: هم هنگام کار با سیستم و هم در هنگام بارگذاری سیستم عامل. چگونه می توان علت BSoD را تعیین کرد و این مشکل را برطرف کرد؟ سیستم عامل ویندوز قادر است در صورت بروز خطا، حافظه خالی را ذخیره کند تا مدیر سیستم بتواند داده های dump را تجزیه و تحلیل کند و علت BSoD را بیابد.

دو نوع تخلیه حافظه وجود دارد - کوچک (minidump) و کامل. بسته به تنظیمات سیستم عامل، سیستم ممکن است موارد کامل یا کوچک را ذخیره کند یا در صورت بروز خطا هیچ اقدامی انجام ندهد.

یک زباله دان کوچک در امتداد مسیر قرار دارد %systemroot%\minidumpو نامی مانند Minixxxxxx-xx.dmp دارد
کمپرسی کامل در امتداد مسیر قرار دارد %systemroot%و نامی مانند Memory.dmp دارد

برای تجزیه و تحلیل محتویات تخلیه حافظه، باید از یک ابزار ویژه - Microsoft Kernel Debugger استفاده کنید.
می توانید برنامه و اجزای لازم برای عملکرد آن را مستقیماً از وب سایت مایکروسافت - ابزارهای اشکال زدایی دریافت کنید

هنگام انتخاب یک دیباگر، باید نسخه سیستم عاملی را که باید بر روی آن تخلیه حافظه را تجزیه و تحلیل کنید، در نظر بگیرید. برای سیستم عامل 32 بیتی، نسخه 32 بیتی دیباگر مورد نیاز است و برای سیستم عامل 64 بیتی، ترجیحاً از نسخه 64 بیتی دیباگر استفاده شود.

علاوه بر خود بسته Debugging Tools برای ویندوز، به مجموعه ای از نمادهای اشکال زدایی - Debugging Symbols نیز نیاز خواهید داشت. مجموعه نمادهای اشکال زدایی مخصوص هر سیستم عاملی است که BSoD روی آن ثبت شده است. بنابراین، شما باید مجموعه ای از نمادها را برای هر سیستم عاملی که عملکرد آن را تجزیه و تحلیل کنید، دانلود کنید. یک ویندوز XP 32 بیتی به مجموعه کاراکترهای 32 بیتی ویندوز XP نیاز دارد. برای سایر سیستم عامل های خانواده ویندوز، مجموعه کاراکترها بر اساس همین اصل انتخاب می شوند. نمادهای اشکال زدایی را می توانید از اینجا دانلود کنید. توصیه می شود آنها را در %systemroot%\symbols

پس از نصب نمادهای دیباگر و اشکال زدایی، دیباگر را راه اندازی کنید. پنجره دیباگر پس از راه اندازی به این شکل است.

قبل از تجزیه و تحلیل محتویات حافظه خالی، باید پیکربندی کمی از اشکال زدا را انجام دهید. به طور خاص، به برنامه بگویید کجا به دنبال نمادهای اشکال زدایی بگردد. برای این کار، از منوی File > Symbol File Path را انتخاب کنید... روی دکمه Browse... کلیک کنید و پوشه ای را که نمادهای اشکال زدایی حافظه مورد نظر را در آن نصب کرده ایم، نشان دهید.

می توانید اطلاعات مربوط به نمادهای اشکال زدایی مورد نیاز را مستقیماً از طریق اینترنت، از سرور عمومی مایکروسافت درخواست کنید. به این ترتیب آخرین نسخه نمادها را خواهید داشت. می توانید این کار را به صورت زیر انجام دهید - در منوی File > Symbol File Path…، وارد کنید: SRV*%systemroot%\symbols*http://msdl.microsoft.com/download/symbols

پس از مشخص کردن مسیر نمادهای اشکال زدایی، File > Save Workspace را از منو انتخاب کرده و با کلیک روی OK، اقدام را تأیید کنید.

برای شروع تجزیه و تحلیل تخلیه حافظه، فایل > Open Crash Dump... را از منو انتخاب کنید و فایل مورد نیاز برای بررسی را انتخاب کنید.

سیستم محتوا را تجزیه و تحلیل می کند و پس از آن نتیجه ای در مورد علت مشکوک خطا ایجاد می کند.

دستور !analyze -v که به دیباگر در خط فرمان داده می شود اطلاعات دقیق تری را ارائه می دهد.

می توانید با انتخاب آیتم منو Debug > Stop Debugging، اشکال زدایی را متوقف کنید

بنابراین، با استفاده از بسته Debugging Tools برای ویندوز، همیشه می توانید تصویر نسبتاً کاملی از دلایل خطاهای سیستم به دست آورید.

اگر صفحه آبی مرگ در ویندوز 10 در مقابل شما ظاهر شد و آماده افتادن به کمای عصبی هستید، خودتان را جمع کنید و سعی کنید مشکل را حل کنید. برای شروع، شایان ذکر است که این پیام شوم به شما در مورد یک خطای حیاتی سیستم هشدار می دهد. علاوه بر این، زمانی که ویندوز در صفحه آبی مرگ قرار می‌گیرد و دستگاه راه‌اندازی مجدد می‌شود، همیشه نمی‌توان لحظه‌ای را دریافت کرد و زمانی برای خواندن کد خطا داشت. بیایید بلافاصله توجه کنیم که تعداد زیادی راه حل برای این مشکل و همچنین دلایل ظاهر یک صفحه آبی وجود دارد. در این مقاله سعی خواهیم کرد دلایل احتمالی صفحه آبی شادی و همچنین راه حل های ممکن برای مشکل را در نظر بگیریم.

در اکثریت قریب به اتفاق موارد، صفحه آبی مرگ سیگنال خطای BAD_POOL_CALLER - stop 0x000000c2 را نشان می دهد. به بیان صریح، تشخیص این خطا دشوار است، اما شاید سعی کنیم از این خطا به عنوان مثال برای توصیف الگوریتم اقدامات بعدی شما استفاده کنیم.

برای تشخیص صحیح مشکل، ابتدا باید یک فایل سیستمی خاص به نام minidump را تجزیه و تحلیل کنید. ایجاد چنین فایل هایی به دلیل نقص سیستم ایجاد می شود، علاوه بر این، آنها می توانند به ما اطلاع دهند که دقیقاً چه چیزی منجر به شکست شده است.

1. برای فعال کردن ضبط خودکار حافظه کوچک (به طور پیش‌فرض غیرفعال شده)، به خصوصیات رایانه بروید و به بخش «تنظیمات سیستم پیشرفته» بروید (این قابلیت برای همه سیستم‌ها و نه فقط ویندوز 10 ارائه شده است):

به عنوان یک قاعده، همه فایل های minidump زمانی که صفحه آبی مرگ (BSOD) ظاهر می شود، ذخیره می شوند و می توانید آنها را در پوشه C:\Windows\Minidump پیدا کنید. قابل توجه است که نام فایل حاوی تاریخ فعلی است - زمانی که ایجاد شده است، که تشخیص تاریخ وقوع خطا را بسیار آسان می کند، به خصوص با توجه به اینکه ممکن است بیش از یک فایل از این قبیل وجود داشته باشد.

دو راه برای رمزگشایی یک minidump حافظه کوچک

راه اول، شامل استفاده از ابزار نسبتاً محبوب BlueScreenView است. این ابزار همچنین می تواند گزینه خوبی برای تجزیه و تحلیل یک حافظه خالی باشد. استفاده از این ابزار به عنوان راهی برای شناسایی راننده مشکل ساز مفید خواهد بود.

علاوه بر این، به ویژه به دلیل این واقعیت قابل توجه است که با کمک آن می توان BSOD (صفحه آبی مرگ) را به عنوان در یک قاب انجماد مشاهده کرد، همانطور که در هنگام سقوط سیستم بود. زمان و تاریخ خرابی، اطلاعات مربوط به درایور یا ماژول را همراه با نسخه و توضیح مختصری نشان می دهد. علاوه بر این، این ابزار به زبان های زیادی از جمله روسی در دسترس است. بنابراین، ابزار BlueScreenView تنها چیزی است که شما نیاز به تجزیه و تحلیل سریع تخلیه حافظه در طول BSOD دارید.

برای روش دومشما باید Debugging Tools را برای ویندوز نصب کنید و همچنین ابزار bsdos_utility را دانلود کنید. در مرحله بعد، پس از باز کردن اسکریپت bsdos_utility.cmd، باید آن را به درایو C:\ منتقل کنید (می توانید یک پوشه جداگانه ایجاد کنید، اما لازم به یادآوری است که خط آدرس راه اندازی اسکریپت با مثال ما متفاوت خواهد بود). سپس در خط فرمان باید بنویسید:

C:\bsdos_utility.cmd

پس از نمایش لیستی از همه dump ها از لیست C:\Windows\Minidump\، پس از آن اسکریپت می پرسد که کدام dump باید تجزیه و تحلیل شود. همچنین می‌توانید هنگام اجرای اسکریپت، minidump مورد نیاز را انتخاب کنید:

به روشی مشابه، می توان بسیاری از خطاهای ویندوز 10 را که باعث BSOD شده اند و همچنین برنامه های مشکل دار .exe که باعث صفحه آبی شده اند را شناسایی کرد.

علت خطاهای مهم ویندوز همراه با صفحه آبی (BSOD) اغلب یک درایور است - تازه نصب شده یا آسیب دیده است. با تعیین اینکه کدام درایور باعث ایجاد خطا شده است، می توانید شروع به رفع مشکل کنید: درایور را به روز کنید، به نسخه قبلی برگردید، برنامه ای که درایور را نصب کرده است را دوباره نصب یا حذف کنید، و غیره. نام درایور همیشه با رنگ آبی نمایش داده نمی شود. صفحه نمایش با این حال، یک راه بسیار ساده وجود دارد که به شما امکان می دهد با استفاده از یک حافظه خالی، درایور مشکل ساز را در چند دقیقه شناسایی کنید.

مرحله 1 - ضبط حافظه را فعال کنید

ابتدا باید مطمئن شوید که ضبط dump فعال است. برای این کار، با فشردن کلیدهای ترکیبی، ویژگی های سیستم را باز کنید Win + Pause، [در ویستا روی لینک کلیک کنید تنظیمات پیشرفته سیستم]، به برگه بروید علاوه بر اینو در نهایت دکمه را فشار دهید.

کم اهمیتتخلیه حافظه باید برای اهداف ما کافی باشد.

به مسیر پوشه ای که در صورت بروز خطای بحرانی در آن ذخیره می شوند توجه کنید.

اکنون می توانید فایل را بایگانی کرده و به یک پست انجمن پیوست کنید عیب یابی خطاهای بحرانی ویندوزو منتظر بمانید تا کسی نام درایور مشکل دار را به شما بگوید :) اما شما می توانید بدون تلاش زیاد این کار را انجام دهید.

مرحله 2 - تجزیه و تحلیل Dumps با استفاده از MinDumper Utility

در این مقاله داستانی در مورد این ابزار پیدا خواهید کرد.

  1. Debugging Tools را برای ویندوز دانلود و نصب کنید. آنها در نصب کننده وب Windows SDK گنجانده شده اند، جایی که پس از راه اندازی باید ابزار Debugging را در بخش Common Utilities انتخاب کنید.
  2. دانلود سناریو(kdfe.cmd)، که توسط Alexander Sukhovey نوشته شده و در منبع منتشر شده است sysadmins.ru(از آنجایی که نتوانستم یک پیوند زنده در آنجا پیدا کنم، لینک خودم را ارائه می کنم). آرشیو را در هر پوشه ای از حالت فشرده خارج کنید.
    توجه داشته باشید. اگر محل پوشه Program Files غیراستاندارد است، ممکن است لازم باشد مسیر پوشه ای که ابزار Debugging برای ویندوز در آن نصب شده است را در kdfe.cmd مشخص کنید. از متغیر dbgpath در خط 41 استفاده کنید.

مرحله 3 - تجزیه و تحلیل تخلیه حافظه

اکنون همه چیز به اجرای یک دستور خلاصه می شود. یک خط فرمان باز کنید و به پوشه ای که در آن استخراج کردید بروید kdfe.cmd. فایل را اجرا کنید و مسیر فایل dump حافظه را به عنوان پارامتر مشخص کنید (در مثال زیر فایل نامیده می شود Mini1110307-01.dmp)

هدف این یادداشت کوتاه نشان دادن نحوه پیکربندی سیستم برای مواجهه با شرایط اضطراری است تخلیه حافظه ویندوز، یعنی تخلیه ای که می تواند در صورت بروز یک شکست بحرانی ایجاد شود که با ظاهر صفحه آبی مرگ (BSOD) مشخص می شود. دامپ به طور کلی چیست، چرا به آن نیاز داریم و چیست، چه مشکلاتی را برای حل آن در نظر گرفته است و حاوی چه اطلاعاتی است؟

حافظه خالی - محتویات حافظه کاری یک فرآیند، هسته یا کل سیستم عامل، از جمله، علاوه بر مناطق کاری، اطلاعات اضافی در مورد وضعیت ثبت پردازنده، محتویات پشته و سایر ساختارهای سرویس.

چرا ممکن است به این محتوا نیاز داشته باشیم، یعنی. تخلیه حافظه ویندوز? شاید رایج ترین استفاده از حافظه خالی مطالعه علل خرابی سیستم () باشد که باعث توقف کامل سیستم عامل شد. علاوه بر این، از حالت حافظه می توان برای اهداف دیگری نیز استفاده کرد. همچنین مهم است که تخلیه حافظه به معنای واقعی کلمه تنها راه به دست آوردن اطلاعات در مورد هر گونه خرابی است! و گرفتن (به دست آوردن) تخلیه حافظه سیستم در واقع تنها روش دقیق برای به دست آوردن اثر انگشت (کپی) فوری از محتویات حافظه فیزیکی سیستم است.

هرچه محتویات تخلیه با دقت بیشتری وضعیت حافظه را در زمان خرابی منعکس کند، ما قادر خواهیم بود وضعیت اضطراری را با جزئیات بیشتری تجزیه و تحلیل کنیم. بنابراین، به دست آوردن یک نسخه به روز از حافظه فیزیکی سیستم در یک نقطه زمانی کاملاً مشخص و بلافاصله قبل از خرابی بسیار مهم است. و تنها راه برای انجام این کار ایجاد یک خرابی کامل است. دلیل آن کاملاً پیش پا افتاده است - هنگامی که یک خرابی حافظه سیستم رخ می دهد، چه در نتیجه خرابی یا در نتیجه یک موقعیت شبیه سازی مصنوعی، سیستم در این لحظه از دریافت کنترل عملکردهای اضطراری (KeBugCheckEx) در یک حالت کاملاً بدون تغییر (استاتیک)، بنابراین، بین لحظه ای که خرابی رخ می دهد و لحظه ای که داده ها در رسانه نوشته می شوند، هیچ چیزی محتویات حافظه فیزیکی را تغییر نمی دهد و در حالت اولیه روی دیسک نوشته می شود. خوب، این در تئوری است، اما گاهی اوقات در زندگی، اما شرایطی وجود دارد که به دلیل قطعات سخت افزاری معیوب، ممکن است خود تخلیه حافظه آسیب ببیند، یا ممکن است ایستگاه در حین ضبط تخلیه منجمد شود.

در اکثریت قریب به اتفاق موارد، از لحظه ای که فرآیند ایجاد یک حافظه خراب شروع می شود تا پایان نوشتن محتویات حافظه روی دیسک، اطلاعات موجود در حافظه بدون تغییر باقی می مانند.

از نظر تئوری، ایستا (تغییر ناپذیری) "اثر انگشت" حافظه با این واقعیت توضیح داده می شود که وقتی تابع KeBugCheckEx فراخوانی می شود، که اطلاعات مربوط به خرابی را نمایش می دهد و فرآیند ایجاد یک حافظه خالی را شروع می کند، سیستم از قبل به طور کامل متوقف شده است و محتویات حافظه فیزیکی بر روی بلوک های اشغال شده روی دیسک توسط فایل صفحه بندی نوشته می شود، پس از آن، در حین بارگذاری بعدی سیستم عامل، به فایلی در رسانه سیستم بازنشانی می شود. خوب، تقریباً یک بار وضعیتی را مشاهده کردم که در آن یک مادربرد معیوب به من اجازه نمی داد یک حافظه خالی را ذخیره کنم: الف) یخ زدن در حالی که منطق ذخیره dump در حال اجرا بود (فرایند به 100٪ نرسید)، ب) آسیب رساندن به فایل dump حافظه ( اشکال‌زدا از ساختارها شکایت کرد)، ج) نوشتن فایل‌های dump memory.dmp با طول صفر. بنابراین، علیرغم این واقعیت که سیستم در زمان ایجاد تخلیه حافظه کاملاً متوقف شده است و فقط کد اضطراری در حال اجرا است، سخت افزار معیوب می تواند بدون استثنا در هر مرحله از عملیات، تنظیماتی را برای هر منطقی انجام دهد.
به طور سنتی، در مرحله اولیه، از بلوک های دیسک اختصاص داده شده به صفحه فایل برای ذخیره یک حافظه خالی ویندوز استفاده می شود. سپس، پس از یک صفحه آبی و راه اندازی مجدد، داده ها به یک فایل جداگانه منتقل می شوند و سپس فایل با استفاده از یک الگو بسته به نوع dump تغییر نام می دهد. با این حال، با شروع نسخه ویندوز ویستا، این وضعیت را می توان تغییر داد، اکنون به کاربر این امکان داده می شود که بدون مشارکت فایل صفحه بندی، اطلاعات مربوط به خرابی را در یک فایل موقت ذخیره کند. این به منظور از بین بردن خطاهای پیکربندی مرتبط با تنظیمات نادرست اندازه و موقعیت فایل صفحه بندی، که اغلب منجر به مشکلاتی در فرآیند ذخیره سازی حافظه خالی می شد، انجام شد.
بیایید ببینیم که سیستم عامل ویندوز به ما اجازه می دهد چه نوع Dump هایی ایجاد کنیم:

  • پردازش (برنامه) حافظه تخلیه;
  • تخلیه حافظه هسته;
  • تخلیه کامل حافظه (تخلیه بخش موجود از حافظه فیزیکی سیستم).

تمام خرابی ها را می توان به دو دسته اصلی تقسیم کرد:

  • خرابی با اطلاعات مربوط به استثنایی که رخ داده است. آنها معمولاً هنگامی که یک استثناء کنترل نشده در برنامه/هسته رخ می دهد، به طور خودکار ایجاد می شوند و بر این اساس، می توان اشکال زدای سیستم (توکار) را فراخوانی کرد. در این حالت، اطلاعات مربوط به استثنا در یک Dump ثبت می شود که تعیین نوع استثنا و محل وقوع آن در تجزیه و تحلیل بعدی را آسان تر می کند.
  • خرابی بدون اطلاعات استثنایی. معمولاً زمانی که نیاز به ایجاد یک عکس فوری از یک فرآیند برای تجزیه و تحلیل بعدی است، به صورت دستی توسط کاربر ایجاد می شود. این تجزیه و تحلیل به معنای تعیین نوع استثنا نیست، زیرا هیچ استثنایی رخ نداده است، بلکه تحلیلی از نوع کاملاً متفاوت است، به عنوان مثال، مطالعه ساختارهای داده یک فرآیند و غیره.

پیکربندی تخلیه حافظه هسته

برای انجام اقدامات شرح داده شده در این بخش باید با یک حساب کاربری وارد شوید.

بیایید مستقیماً به پیکربندی تنظیمات حذف خرابی ویندوز بپردازیم. ابتدا باید به یکی از روش های زیر به پنجره ویژگی های سیستم برویم:

  1. روی نماد "رایانه من" - "Properties" - "Advanced system settings" - "Advanced" راست کلیک کنید.
  2. دکمه "شروع" - "کنترل پنل" - "سیستم" - "تنظیمات پیشرفته سیستم" - "پیشرفته".
  3. میانبر صفحه کلید "Windows" + "Pause" - "Advanced system settings" - "Advanced".

  4. control system.cpl,3
  5. در خط فرمان (cmd) اجرا کنید:
    SystemPropertiesAdvanced

نتیجه اقدامات شرح داده شده باز کردن پنجره "System Properties" و انتخاب تب "Advanced" است:

پس از آن، در بخش "Boot and Recovery" کلیک می کنیم، "Options" را انتخاب می کنیم و در نتیجه پنجره جدیدی به نام "دانلود و بازیابی" را باز می کنیم:

همه پارامترهای crash dump در یک بلوک پارامتر به نام "System Failure" گروه بندی می شوند. در این بلوک می توانیم پارامترهای زیر را تنظیم کنیم:

  1. رویدادها را در گزارش سیستم بنویسید.
  2. راه اندازی مجدد خودکار را انجام دهید.
  3. ضبط اطلاعات اشکال زدایی
  4. فایل روگرفت.
  5. یک فایل dump موجود را جایگزین کنید.

همانطور که می بینید، بسیاری از پارامترهای لیست کاملاً پیش پا افتاده و به راحتی قابل درک هستند. با این حال، من می خواهم در مورد پارامتر "Dump File" توضیح بیشتری بدهم. پارامتر به عنوان یک لیست کشویی ارائه می شود و دارای چهار مقدار ممکن است:

تخلیه حافظه کوچک

یک حافظه کوچک (minidump) فایلی است که حاوی کمترین مقدار اطلاعات در مورد خرابی است. کوچکترین حافظه ممکن است. با وجود معایب آشکار، Minidumps اغلب به عنوان اطلاعاتی در مورد عدم انتقال به فروشندگان راننده شخص ثالث برای مطالعه بعدی استفاده می شود.
ترکیب:

  • پیغام خطا.
  • مقدار خطا.
  • پارامترهای خطا
  • زمینه پردازنده (PRCB) که در آن خرابی رخ داده است.
  • اطلاعات فرآیند و زمینه هسته (EPROCESS) برای فرآیند خراب شدن و تمام رشته های آن.
  • اطلاعات پردازش و زمینه هسته (ETHREAD) برای رشته ای که باعث خرابی می شود.
  • پشته حالت هسته برای رشته ای که باعث خرابی شده است.
  • لیست درایورهای بارگذاری شده

محل اقامت: %SystemRoot%\Minidump\MMDDYY-XXXXXX-NN.dmp. در جایی که MMDDYY به ترتیب ماه، روز و سال است، NN شماره سریال تخلیه است.
حجم: اندازه به بیتی بودن سیستم عامل بستگی دارد: فقط 128 کیلوبایت برای یک سیستم عامل 32 بیتی و 256 کیلوبایت برای سیستم عامل 64 بیتی در فایل صفحه بندی (یا در فایل مشخص شده در DedicatedDumpFile) مورد نیاز است. از آنجایی که نمی توانیم چنین اندازه کوچکی را تنظیم کنیم، آن را تا 1 مگابایت گرد می کنیم.

تخلیه حافظه هسته

این نوع dump حاوی یک کپی از تمام حافظه هسته در زمان خرابی است.
ترکیب:

  • لیست فرآیندهای در حال اجرا
  • وضعیت موضوع فعلی
  • صفحات حافظه در حالت هسته که در زمان خرابی در حافظه فیزیکی وجود دارند: حافظه درایور حالت هسته و حافظه برنامه در حالت هسته.
  • حافظه سطح وابسته به سخت افزار (HAL).
  • لیست درایورهای بارگذاری شده

خالی از حافظه هسته صفحات حافظه تخصیص نیافته و صفحات حالت کاربر را ندارد. موافقم، بعید است که صفحات پردازش حالت کاربر در هنگام خرابی سیستم (BugCheck) برای ما جالب باشد، زیرا خرابی سیستم معمولاً توسط کد حالت هسته آغاز می شود.

اندازه: بسته به اندازه فضای آدرس هسته اختصاص داده شده توسط سیستم عامل و تعداد درایورهای حالت هسته متفاوت است. به طور معمول، حدود یک سوم حافظه فیزیکی در فایل swap (یا در فایل مشخص شده در DedicatedDumpFile) مورد نیاز است. ممکن است متفاوت باشد.

تخلیه کامل حافظه

یک حافظه کامل حاوی یک کپی از تمام حافظه فیزیکی (RAM) در زمان خرابی است. بر این اساس، کل محتویات حافظه سیستم در فایل گنجانده شده است. این هم یک مزیت و هم یک عیب بزرگ است، زیرا اندازه آن در برخی از سرورهای دارای مقدار زیادی رم می تواند قابل توجه باشد.
ترکیب:

  • تمام صفحات حافظه فیزیکی "مرئی". این تقریباً کل حافظه سیستم است، به استثنای مناطق استفاده شده توسط سخت افزار: BIOS، فضای PCI و غیره.
  • داده‌های مربوط به فرآیندهایی که در زمان خرابی روی سیستم در حال اجرا بودند.
  • صفحاتی از حافظه فیزیکی که به فضای آدرس مجازی نگاشت نشده اند، اما می توانند به بررسی علت خرابی کمک کنند.

به طور پیش فرض، تخلیه کامل حافظه شامل مناطقی از حافظه فیزیکی استفاده شده توسط BIOS نمی شود.
مکان: %SystemRoot%\MEMORY.DMP. رونوشت قبلی بازنویسی شده است.
حجم: فایل پیجینگ (یا فایل مشخص شده در DedicatedDumpFile) به حجمی برابر با اندازه حافظه فیزیکی + 257 مگابایت نیاز دارد (این 257 مگابایت به یک هدر + داده درایور مشخص تقسیم می شود). در واقع، در برخی از سیستم عامل ها، آستانه پایین فایل صفحه بندی را می توان دقیقاً با مقدار اندازه حافظه فیزیکی تنظیم کرد.

تخلیه خودکار حافظه

با شروع Windows 8/Windows Server 2012، یک نوع dump جدید به نام Automatic Memory Dump به سیستم معرفی شده است که به عنوان نوع پیش فرض تنظیم شده است. در این حالت، سیستم خود تصمیم می گیرد که در صورت خرابی خاص، کدام حافظه را ضبط کند. علاوه بر این، منطق انتخاب به معیارهای زیادی بستگی دارد، از جمله فراوانی "خراش" سیستم عامل.

پس از تغییر پیکربندی حذف حافظه ویندوز، ممکن است لازم باشد رایانه خود را مجددا راه اندازی کنید.

تنظیمات رجیستری

بخش رجیستری که پارامترهای crash dump را تعریف می کند:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

گزینه ها:

پارامتر تایپ کنید شرح
راه اندازی مجدد خودکار REG_DWORD فعال/غیرفعال کردن راه اندازی مجدد خودکار زمانی که BSOD رخ می دهد.
CrashDumpEnabled REG_DWORD نوع دامپ ایجاد شده
  • 0 - یک حافظه خالی ایجاد نکنید.
  • 1 - تخلیه کامل حافظه؛
  • 2 - تخلیه حافظه هسته;
  • 3 - حافظه کوچک روگرفت;
DumpFile REG_EXPAND_SZ مسیر و نام تخلیه حافظه هسته و تخلیه کامل حافظه.
DumpFilters REG_MULTI_SZ فیلتر درایور در پشته درایور تخلیه حافظه. به شما امکان می دهد در مرحله ایجاد خرابی ها عملکرد جدیدی اضافه کنید. به عنوان مثال، رمزگذاری محتویات دامپ. تغییر مقدار توصیه نمی شود.
LogEvent REG_DWORD ثبت یک رویداد در گزارش سیستم.
MinidumpDir REG_EZPAND_SZ مسیر و نام تخلیه کوچک حافظه.
MinidumpsCount REG_DWORD حداکثر تعداد دفعات حافظه کوچک. هنگامی که بیش از حد، نسخه های قدیمی تر شروع به بازنویسی می کنند.
زیاد نوشتن REG_DWORD یک فایل dump موجود را جایگزین کنید. فقط برای تخلیه حافظه هسته و تخلیه کامل حافظه.
IgnorePagefileSize REG_DWORD فایل صفحه استاندارد را به عنوان مکانی برای ذخیره موقت حافظه موقت (متوسط) نادیده می گیرد. نشان می دهد که حافظه dump باید در یک فایل جداگانه نوشته شود. همراه با گزینه DedicatedDumpFile استفاده می شود.
DedicatedDumpFile REG_EZPAND_SZ مسیر و نام فایل جایگزین موقت برای ضبط حافظه خالی. در پاس دوم، داده ها همچنان به DumpFile/MinidumpDir منتقل می شوند.

ایجاد یک حافظه خالی به صورت دستی

در بالا تنظیمات ایجاد خودکار خرابی سیستم را در صورت بروز یک خطای بحرانی، یعنی یک استثناء کنترل نشده در کد هسته توضیح دادیم. اما در زندگی واقعی، علاوه بر از کار افتادن سیستم عامل، شرایطی وجود دارد که لازم است در یک نقطه زمانی خاص، حافظه سیستم را تخلیه کنید. چگونه در این مورد باشیم؟ روش هایی برای به دست آوردن یک عکس فوری از تمام حافظه فیزیکی وجود دارد، به عنوان مثال با استفاده از دستور .dump در اشکال زدایی WinDbg/LiveKD. LiveKD برنامه ای است که به شما اجازه می دهد تا اشکال زدایی هسته Kd را روی یک سیستم در حال اجرا در حالت محلی اجرا کنید. دیباگر WinDbg نیز ویژگی مشابهی دارد. با این حال، روش تخلیه در حال پرواز دقیق نیست زیرا تخلیه تولید شده در این مورد "ناسازگار" است، زیرا تولید Dump به زمان نیاز دارد و در صورت استفاده از اشکال‌زدای حالت هسته، سیستم به اجرا و ساخت ادامه می‌دهد. به صفحات حافظه تغییر می کند.

ویندوز یک ساخته بسیار شکننده است و تقریباً هر اقدام اشتباهی از جانب کاربر منجر به خطاهای مهم و نه خیلی خوب می شود. اطلاعات نوشته شده بر روی خود صفحه و همچنین فایل های ویژه به شما کمک می کند تا اطلاعاتی در مورد صفحه آبی مرگ پیدا کنید، که همان مشکلات بسیار مهم است. تخلیه حافظه- ذخیره اطلاعات در مورد علل BsoD. من به شدت توصیه می کنم این ویژگی را فعال کنید، زیرا هیچ کس از صفحه آبی مصون نیست، حتی یک کاربر با تجربه. خود حافظه ها معمولاً در طول مسیر ذخیره می شوند C:\Windows\MEMORY.DMP، یا C:\Windows\Minidump- جایی که به اصطلاح حافظه های کوچک ذخیره می شوند. به هر حال، یک حافظه کوچک فایلی است که به شما کمک می کند علت BsoD را پیدا کنید.

به طور معمول، ایجاد تخلیه حافظه در ویندوز 10 به طور پیش فرض غیرفعال است، به این معنی که استفاده از ابزارهای ویژه برای بررسی فایل های dump نتیجه مثبتی نخواهد داشت. بیایید مستقیم وارد عمل شویم.

نحوه فعال کردن عملکرد تخلیه حافظه در ویندوز 10 و پیکربندی آن

معمولاً از ابزارهایی مانند BlueScreenView برای مشاهده dump ها استفاده می شود، اما شما باید همین الان ایجاد خودکار حافظه را تنظیم کنید، در غیر این صورت این برنامه و موارد مشابه بی فایده خواهند بود.

این مفید است:

روی نماد جستجو کلیک کنید و عبارت را وارد کنید "صفحه کنترل"برای باز کردن پنجره ابزار

تبدیل نمایش آیکون ها به فرم "آیکون های کوچک"، و سپس به بخش بروید "سیستم".

پنجره ای باز می شود که در سمت چپ روی گزینه کلیک کنید "تنظیمات پیشرفته سیستم".

در تب "پیشرفته"، روی مورد کلیک کنید

در نهایت، پنجره ای باز می شود که در آن پارامترهای اصلی برای پیکربندی dump ها قرار دارند. در اینجا مشاهده می کنید که یک حافظه خودکار در ویندوز فعال می شود که در مسیر مشخص شده در زیر ذخیره می شود. چک باکس برای ایجاد سیاهههای مربوط نیز گنجانده شده است. علاوه بر این، فایل های دامپ حافظه کوچک نیز ایجاد می شود که هنگام کار با صفحه آبی مرگ برای ما بسیار مفید خواهد بود. اطلاعات مربوط به هسته سیستم و حافظه نیز ذخیره می شود. اگر حالت خودکار باشد، این کافی خواهد بود.

اطلاعاتی در مورد سایر حافظه های خالی

اگر منوی کشویی ضبط اطلاعات اشکال زدایی را باز کنید، چندین گزینه را مشاهده خواهید کرد که در زیر توضیح خواهم داد.

  • تخلیه حافظه کوچک– یک مینی دامپ که در مسیری خاص ذخیره شده و 256 کیلوبایت وزن دارد. این فایل اطلاعات اولیه را در صفحه آبی مرگ و فرآیندهای سیستم ذخیره می کند. اگر می خواهید علت BSOD را بیابید، یک تخلیه کوچک حافظه کافی است. BlueScreenView یا برنامه های مشابه برای بازیابی اطلاعات استفاده می شود. هر مبتدی می تواند از این روش استفاده کند.
  • تخلیه حافظه هسته– فایل حاوی اطلاعات مشابه با نوع خودکار خواهد بود. تنها تفاوت این است که سیستم فایل پیجینگ را تغییر می دهد. کدام گزینه را انتخاب کنم؟ فکر کنم از نوع اتوماتیک باشه
  • تخلیه کامل حافظه– فایل حاوی اطلاعات کاملی در مورد RAM است، به این معنی که اندازه فایل برابر با اندازه RAM خواهد بود. شما 8 گیگ بر روی کامپیوتر خود دارید، یعنی چقدر فایل تخلیه کامل حافظه روی دیسک اشغال می شود. این گزینه به ویژه برای مبتدیان مناسب نیست.
  • تخلیه حافظه فعال– اولین بار در ویندوز 10 ظاهر شد. بیشتر برای سرورها مناسب است و اطلاعات مربوط به حالت های حافظه فعال و هسته و همچنین کاربر فعلی را ذخیره می کند.

چگونه یک فایل دامپ حافظه را حذف کنیم

خیلی ساده است، شما در مسیری که این فایل ها در آن قرار دارند بروید و به صورت دستی آنها را حذف کنید. به عنوان مثال فایل تخلیه کامل حافظه MEMORY.DMP نام دارد، فقط آن را حذف کنید و تمام. هنگام استفاده از ابزار Disk Cleanup، گزینه ای برای حذف فایل های dump نیز وجود دارد.


تخلیه حافظه ممکن است به دلیل ابزارهای تمیز کردن سیستم غیرفعال شود. هنگام استفاده از SSD ها و ابزارهای ویژه برای کار با این درایوها، آنها همچنین می توانند برخی از عملکردهای سیستم را غیرفعال کنند تا SSD کمتر تحت فرآیندهای خواندن/نوشتن قرار گیرد.

بهترین مقالات در این زمینه