Voqea kodi 1001 Windows xatosi haqida hisobot. Windows qulfdan chiqarilgan: Xatolar jurnali qanday ishlaydi? Windows xatolar haqida hisobot berishdan foydalanish

Ilovani qayta ishga tushirish va tiklash mexanizmiga bag'ishlangan ushbu seriyadagi oldingi maqolada biz Windows xatolar haqida hisobot berish (WER) mexanizmini eslatib o'tdik. Bu ushbu seriyaning ushbu maqolasida muhokama qilinadi.

Ilovani qayta ishga tushirish va tiklash mexanizmiga bag'ishlangan ushbu seriyadagi oldingi maqolada biz Windows xatolar haqida hisobot berish (WER) mexanizmini eslatib o'tdik. Bu ushbu seriyaning ushbu maqolasida muhokama qilinadi.

Windows xatosi haqida xabar berish mexanizmi

Windows Error Reporting (WER) dan foydalanib, siz ilovalarda yuzaga keladigan xatolar haqida ma'lumot to'plashingiz va ushbu ma'lumotni maxsus Microsoft saytiga (http://winqal.microsoft.com) yuborishingiz yoki uni mahalliy saqlashingiz mumkin. Xatolar va nosozliklar haqida batafsil ma'lumot to'plash ilovalardagi kamchiliklarni bartaraf etishga, xatolarni tuzatishga yordam beradi, xizmat paketlari va ilovalarning yangi versiyalarini chiqarishni soddalashtiradi va ilovalarning o'zi ham, umumiy barqarorligi va ishonchliligini ta'minlaydi. operatsion tizim.

E'tibor bering, Microsoft o'zi ishlab chiqish jarayonida ham, mahsulotlarni bozorga chiqargandan keyin ham Windows xatolar haqida hisobot berish mexanizmidan faol foydalanadi. Ha, mahsulot guruhi Microsoft Office Office Service Pacl 2, mahsulot guruhidagi xatolarning 50% tuzatildi Visual Studio- Beta 1 Visual Studio 2005-dagi xatolarning 74%, Windows XP-dagi xatolarning 29% Windows XP Service Pack 1 da tuzatilgan. Hozirda 2 mingdan ortiq kompaniya foydalanmoqda. Windows xizmatlari Ilovalaringiz sifatini yaxshilash uchun xato haqida xabar berish.

Windows xatolar haqida xabar berish mexanizmi birinchi marta Windows XP da paydo bo'ldi, Windows Vista'da sezilarli darajada kengaytirildi va qabul qilindi yanada rivojlantirish V Windows Server 2008, Vista Service Pack 1 va Windows 7 va Windows Server 2008 R2. Shunday qilib, Windows Vista darajasida ishlab chiquvchilar nafaqat ilovalarda yuzaga kelgan nosozliklar haqida ma'lumot olish, balki ishlash ma'lumotlarini ham olish imkoniyatiga ega. Endi siz muammoli hisobotlarni yanada moslashuvchan yaratishingiz, sozlashingiz va yuborishingiz mumkin, onlayn ma'lumotlarni tahlil qilish vositalari takomillashtirildi va foydalanuvchilar bilan muloqot qilish mexanizmi soddalashtirildi - Muammo hisobotlari va yechimlari(Windows Vista da - Boshlash -> Boshqaruv paneli -> Tizim va Ta'minot -> Muammo haqida hisobotlar va echimlar -> Muammolar tarixini ko'rish) Va Harakat markazi(Windows 7 da). Keyin, Windows Server 2008 va Vista Service Pack 1 da mahalliy axlatlarni yaratish imkoniyati mavjud bo'ldi va Windows 7 va Windows Server 2008 R2 da an'anaviy ishlov beruvchilar tomonidan ishlamaydigan va shunga olib keladigan istisnolarni yaratish imkoniyati qo'shildi. dasturni zudlik bilan to'xtatish va Windows xatolar haqida xabar berish mexanizmini avtomatik ishga tushirish , shuningdek, tashqi jarayonni belgilash imkoniyati - hodisa nomini, xato haqida xabar berish parametrlarini va tuzatuvchining ixtiyoriy ishga tushirilishini olish uchun chaqiriladigan istisno ishlov beruvchisi.

Windows xatolar haqida hisobot berishdan foydalanish

Keling, ishlab chiquvchilar o'z ilovalaridagi nosozliklar va boshqa muammolar haqida ma'lumot olish uchun Windows xatolar haqida hisobot berishdan qanday foydalanishlari mumkinligini tezda ko'rib chiqaylik. Windows-dan boshlab Vista Windows sukut bo'yicha, barcha ilovalar uchun nosozliklar, muzlashlar va yadro nosozliklari haqida hisobot beradi - dastur kodiga hech qanday o'zgartirish kerak emas. Agar kerak bo'lsa, hisobot mini-xotirani va ilovalarning yig'ishini o'z ichiga oladi, ba'zi ilovalarni yuborish zarur bo'lgan hollarda dasturlash interfeyslaridan foydalanishni talab qiladi; Qo'shimcha ma'lumot. Windows yadrosi ishlov berilmagan istisnolar haqida ma'lumotni avtomatik ravishda bildirganligi sababli, ilovalar halokatli xatolarga olib keladigan istisnolarni ko'rib chiqishlari shart emas.

Operatsion tizimning yadro darajasida ishlamay qolishi, muzlashi yoki xatolik yuz bergan taqdirda, Windows Xatolar haqida hisobot berish mexanizmi quyidagi harakatlar ketma-ketligini bajaradi:

  1. Muammo yuzaga keladi.
  2. Operatsion tizim yadrosi WER ni chaqiradi.
  3. WER ma'lumotlarni to'playdi, hisobot yaratadi va agar kerak bo'lsa, foydalanuvchidan hisobotni yuborishni tasdiqlashni so'raydi.
  4. Tasdiqlashni olgach, WER Microsoft-ga (Watson Server deb ataladigan) hisobot yuboradi.
  5. Agar server qo'shimcha ma'lumotlarni talab qilsa, WER ularni to'playdi va agar kerak bo'lsa, uni yuborish uchun foydalanuvchidan tasdiqlashni so'raydi.
  6. Agar dastur qayta ishga tushirish uchun ro'yxatdan o'tgan bo'lsa (biz avvalroq muhokama qilgan mavzu), u holda WER tegishli bilvosita chaqiriladigan dastur funktsiyasini bajaradi.
  7. Muvaffaqiyatsizlikka olib kelgan muammoning echimi mavjud bo'lsa, foydalanuvchi tegishli operatsion tizim vositalari orqali xabardor qilinadi.

Vaziyatga qarab, CAB fayli bo'lishi mumkin har xil turlari fayl nomi kengaytmasi bilan ajralib turadigan dumplar (1-jadval).

Ilova Microsoft-ga yuborilgan hisobot mazmunini sozlash uchun quyidagi funksiyalardan foydalanishi mumkin - ro'yxatdan o'tish funksiyasi Internetga ko'rsatilgan fayllar va xotira bloklarini yaratilgan hisobotga kiritishni buyuradi.

Faylni hisobotga kiritish uchun parametr sifatida uzatiladigan WerRegisterFile() funksiyasidan foydalaniladi: faylning toʻliq nomi, uning turi (WER_REGISTER_FILE_TYPE qiymatlaridan biri) va ikkita bayroq: WER_DELETE_FILE_WHEN_DONE, bu fayl shunday boʻlishi kerakligini bildiradi. hisobot yuborilgandan so'ng o'chirildi va WER_ANONYMOUS_ DATA faylda shaxsiy ma'lumotlar mavjud emasligini ko'rsatadi. Mumkin qiymatlar WER_REGISTER_FILE_TYPE parametrlari jadvalda keltirilgan. 2.

Esda tutingki, xotira dumpini yaratish vazifasi dastur ishlab chiqaruvchisiga yuklangan - uni hal qilish uchun siz, masalan, Windows SDK-da tasvirlangan disk raskadrovka mexanizmlaridan foydalanishingiz mumkin (MiniDumpWriteDump() funksiyasiga qarang).

Faylni hisobotdan chiqarib tashlash uchun WerUnRegisterFile() funksiyasidan foydalanib, chiqarib tashlangan fayl nomini parametr sifatida belgilang.

Ko'pgina stsenariylarda havola qo'shimcha fayllar faqat serverdan tegishli so'rov olinganda paydo bo'ladi. Qo'shimcha fayllar yuborilganda, WerReportSubmit() funksiyasini chaqirishda WER_ADD_ REGISTERED_DATA bayrog'idan foydalanish kerak - bu haqda keyinroq gaplashamiz.

Hisobotga xotira maydonining nusxasini kiritish uchun WerRegisterMemoryBlock() funksiyasidan foydalaniladi, uning parametrlari kiritiladigan xotira bloki boshining manzili va bu blokning baytdagi o‘lchami (maksimal hajmi xotira bloki WER_MAX_MEM_BLOCK_SIZE). Hisobotdagi xotira maydoni nusxasini olib tashlash uchun WerUnRegisterMemoryBlock() funksiyasidan foydalaning. Agar xotiradan ma'lumotlarni yuborayotgan bo'lsangiz, WerReportSubmit() funksiyasini chaqirganda WER_ADD_REGISTERED_DATA bayrog'idan foydalanishingiz kerak.

WerSetFlags() va WerGetFlags() funksiyalaridan xato hisobotini yaratishda va konfiguratsiya ma’lumotlarini olishda jarayonning holatini nazorat qilish uchun mos ravishda foydalanish mumkin.

Hisobotni yaratish va yuborish jarayoni bir necha bosqichlardan iborat. Hisobot WerReportCreate() funksiyasini chaqirish orqali ishga tushiriladi, u hisobot yaratilgan voqea turini, hisobot turini ( WerReportNonCritical- tiklash imkoniyati va WerReportCritical bilan bog'liq nosozliklar uchun - ilovaning ishdan chiqishiga sabab bo'lgan nosozliklar uchun, hisobotga kiritilgan ma'lumotlarga havola (WER_REPORT_INFORMATION tuzilishiga qarang) va yaratilgan hisobotga havolani o'z ichiga olgan o'zgaruvchi - ReportHandle.

Hisobot muvaffaqiyatli ishga tushirilgandan so'ng, unga birinchi va ikkinchi guruh parametrlarini qo'shishingiz kerak. Birinchi guruh parametrlari WerReport-Set-Parameter() funksiyasi yordamida oʻrnatiladi, unga yaratilgan hisobotga havola (WerReportCreate funksiyasining muvaffaqiyatli bajarilishi natijasi), bayroqlar toʻplami, parametr nomi va uning qiymat (nol bilan tugaydigan 16 bitli Unicode qatori).

Hisobotga kiritilishi kerak qo'shimcha parametrlar WerReportAddSecondaryParameter() funksiyasidan foydalaniladi, unga hisobotga havola, parametr nomi va uning qiymati uzatiladi.

Hisobotlarga xotira maydonlarining fayllari va oniy suratlarini kiritish imkoniyatidan tashqari, hisobotning bir qismi sifatida xotira qoldiqlarini uzatish mumkin - buning uchun parametrlari hisobotga havolani o'z ichiga olgan WerReportAddDump() funktsiyasidan foydalanishingiz mumkin. , dump yaratilgan jarayon va oqimga havolalar , dump turi (WER_DUMP_TYPE qiymatlaridan biri), istisno haqida ma'lumot (WER_EXCEPTION_INFORMATION tipidagi strukturaga ko'rsatgich), qo'shimcha imkoniyatlar(ma'lumotlar turi WER_DUMP_CUSTOM_OPTIONS) va bayroqlar. E'tibor bering, dump yaratilgan jarayon STANDARD_RIGHTS_READ va PROCESS_QUERY_INFORMATION kirish huquqlariga ega bo'lishi kerak.

Hisobotga fayllarni kiritish uchun biz WerReportAddFile() funksiyasidan foydalanamiz, unga biz hisobotga havolani, faylning toʻliq nomini, fayl turini (WER_FILE_TYPE) va qoʻshimcha bayroqlarni uzatamiz.

Bundan tashqari, ishlab chiquvchilarga sozlash imkoniyati beriladi foydalanuvchi interfeysi- tizim dialog panelida ko'rsatilgan ma'lumotlarni tanlash. Ushbu maqsadlar uchun WerReportSetUI Option() funktsiyasidan foydalaniladi, u hisobotga, hisobot interfeysi turiga (WER_REPORT_UI) va ko'rsatilgan satr qiymatiga havola uzatiladi. Ilova interfeys elementining istalgan maydonini o'zgartirishi mumkin, parametr bilan belgilanadi WER_REPORT_UI; Har bir funktsiya chaqiruvi faqat bitta maydonni o'zgartirishga imkon beradi. WerReportSetUIOption() funksiyasi ilovaning ishlashi davomida istalgan vaqtda hisobot yuborilgunga qadar chaqirilishi mumkin.

Hisobot yaratilgach va sozlangach, biz hisobotni yuborish uchun WerReportSubmit() funksiyasidan foydalanamiz. Ushbu funktsiyaning parametrlari hisobotga havola, foydalanuvchi interfeysi turi (administrator huquqlari, jo'natishni tasdiqlash va boshqalar) va bayroqlar to'plamidir. Hisobot yuborilgandan so'ng, unga havola WerReportCloseHandle() funksiyasi yordamida yopilishi kerak.

Ilovani Windows xatolar haqida hisobot berish mexanizmidan uzish uchun WerAddExcludedApplication() funksiyasidan foydalaning va uni qayta ulash uchun WerRemoveExcludedApplication() funksiyasidan foydalaning.

Windows xatolar haqida xabar berish sozlamalari ikkita ro'yxatga olish bo'limida joylashgan:

  • HKEY_CURRENT_USER\Software\Microsoft\Windows\Windows Xatolar haqida hisobot;
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Windows Xatolar haqida hisobot.

Ko'pchilik foydali sozlamalar jadvalda ko'rsatilgan. 3.

Xulosa

Ushbu maqolalar turkumida biz dastur barqarorligini yaxshilashning turli masalalarini muhokama qildik. Biz xotira oqishini oldini olish va ilovalarni muzlatib qo'ymaslik usullarini ko'rib chiqdik, ba'zi resurslarni bloklagan yoki tizim xabarlariga javob berishni to'xtatgan ilovalarni qayta ishga tushirishga imkon beruvchi Ilovalarni qayta ishga tushirish va tiklash mexanizmi va Windows xatolar haqida xabar berish mexanizmidan foydalanishni muhokama qildik. , bu ilovalarda yuzaga kelgan nosozliklar haqida ma'lumot to'plash imkonini beradi.

Operatsiya xonasiga bag'ishlangan keyingi maqolalarda Windows tizimi Dasturchilar uchun 7, biz dastur ishlab chiquvchilarni qiziqtirishi mumkin bo'lgan yadro darajasidagi bir qator o'zgarishlarni ko'rib chiqamiz.

Ishlashni to'xtatadi yoki noto'g'ri ishlaydi) Windows yuborish uchun mo'ljallangan muammo hisobotini yaratadi Microsoft(muammoning yechimini topish uchun).

Operatsion tizimdan boshlab , "muvaffaqiyatsizlik yoki baxtsiz hodisani tahlil qilish vositasi" ni almashtirish Dr. Uotson keldi Windows xatosi haqida xabar berish (WER) – Ro'yxatdan o'tish xizmati Windows xatolar (boshqa ismlar - , Muammolar haqida hisobot va ularni hal qilish).

Windows xatolar jurnali xizmati quyidagi fayllar bilan ifodalanadi (barchasi katalogda joylashgan \Windows\System32\):

wer.dll (Windows xato xabarlari kutubxonasi);

wercon.exe (Muammolar va ularning yechimlari haqida hisobot);

wercplsupport.dll ();

werdiagcontroller.dll (WER diagnostika tekshiruvi);

WerFault.exe (Windows xatosi haqida hisobot);

WerFaultSecure.exe (Windows xato hisobotlari);

wermgr.exe (Windows muammolari haqida xabar berish);

wersvc.dll (Windows xatolar jurnali xizmati);

www.wertargets.wtl.

Jarayon (dastur) bajarilmasa, xizmat Windows xatosi haqida xabar berish ishga tushiradi - sessiyada noto'g'ri jarayon - uning ( WerFault.exe),

identifikatorni o'tkazish ( PID) ichida jarayon buyruq qatori WerFault:

Bu oynani ko'rsatadi Microsoft Windows xato xabari bilan - "Ish to'xtadi<Название_программы>. Keyingi safar ulanganingizda Internet Windows:


bu xatoni bartaraf etish yo'lini izlashi mumkin" Tugmani bosganingizda Muammo tafsilotlarini ko'rsatish


Muammo imzosini ko'rishingiz mumkin: Muammo imzolari katalogda saqlanadigan xato hisobotlarida saqlanadi\Users\Master\AppData\Local\Microsoft\Windows\WER\ReportArchive\ , har bir hisobot alohida papkada Hisobot ******** (Masalan, Hisobot 0a003e48 ), faylda.

Report.wer ), faylda:

Taxminiy fayl mazmuni

Versiya=1

EventType=APPCRASH

Voqea vaqti=129234418886148269

Hisobot turi=2

Rozilik=1

Response.type=4

Sig.Name=Ilova nomi

Sig.Value=iexplore.exe

Sig.Name=Ilova versiyasi

Sig.Value=8.0.6001.18928

Sig.Name=Ilova vaqti tamg'asi

Sig.Value=4bdfa327

Sig.Name=Xato moduli nomi

Sig.Value=mshtml.dll

Sig.Name=Ilova versiyasi

Sig.Name=Xato moduli versiyasi

Sig.Name=Xatoli modulning vaqt belgisi

Sig.Value=4bdfb76d

Sig.Name=Istisno kodi

Sig.Value=c0000005

Sig.Name=Istisno ofset

Sig.Value=000da33f

DynamicSig.Name=OS versiyasi

DynamicSig.Value=6.0.6002.2.2.0.768.3

DynamicSig.Name=Til kodi

DynamicSig.Value=1049

DynamicSig.Name=Qo'shimcha ma'lumot 1

DynamicSig.Value=fd00

DynamicSig.Name=Qo'shimcha ma'lumot 2

DynamicSig.Name=Qo'shimcha ma'lumot 1

DynamicSig.Name=Qo'shimcha ma'lumot 3

DynamicSig.Name=Qo'shimcha ma'lumot 4

DynamicSig.Value= UI=C:\Dastur fayllari\ Internet Explorer

\iexplore.exe

UI=Internet Explorer ishlashni toʻxtatdi

UI=Windows bu xatolik yechimini Internetda qidirishi mumkin.

UI=Internetda muammoning yechimini qidiring va dasturni yoping

UI=Keyinroq onlayn tuzatishni tekshiring va dasturni yoping

UI=Dasturni yopish

FriendlyEventName=Ishni to'xtatish

ConsentKey=APPCRASH

AppName=Internet Explorer

AppPath=C:\Program Files\Internet Explorer\iexplore.exe Xizmatni qanday boshlash kerak

Muammolar va ularning yechimlari haqida hisobot bosing;


Ishga tushirish -> Boshqarish paneli -> Muammolar va ularning echimlari haqida hisobotlar - derazada Muammolar va ularning yechimlari haqida hisobot menyuda Vazifalar

· Quyidagi variantlar mavjud: Yangi echimlarni qidiring

(ochiq Internet aloqasi talab qilinadi); Xato haqida xabar berish XP, Vista va Windows 7 da sukut boʻyicha yoqilgan. Ilova xatolikka duch kelganda, xatoning batafsil tavsifi paydo boʻladi va sizdan ushbu maʼlumotni Microsoft’ga yuborish soʻraladi. butun dunyo bo'ylab millionlab shaxsiy kompyuterlardan olingan va yamoqlar va xizmat paketlarini yaratishda yordam beradi. Ba'zi hollarda mustaqil tahlil xato haqida ma'lumot muammoni hal qilishda yordam beradi. Biroq, ba'zi hollarda tizimning bunday xatti-harakati qabul qilinishi mumkin emas va siz ushbu funksiyani o'chirib qo'ymoqchisiz. Ushbu maqolada biz barcha tizimlarda xato haqida xabar berishni o'chirish usullarini ko'rib chiqamiz.

Windows 7

Boshlash menyusini oching va qidiruv satriga kiring muammo haqida xabar berish sozlamalari, yoki Harakatlar markazi -> Harakat markazi sozlamalarini o'zgartirish -> Muammo haqida xabar berish sozlamalariga o'ting. Qidiruv usulidan foydalangan bo'lsangiz, "Muammolar haqida xabar berishni tanlang" ni tanlang:

Keyin ro'yxatdan kerakli variantni osongina tanlashingiz mumkin.

Xato haqida xabar berishni o'chirib qo'ying Guruh siyosatidan foydalangan holda Windows 7

Izoh: Bu usul uy xo'jaliklari uchun mavjud emas Windows versiyalari 7.

Boshlash tugmasini bosing va kiriting gpedit.msc qidiruv satrida va Enter tugmasini bosing.

Mahalliy muharrir ochiladi guruh siyosati. Keyinchalik, foydalanuvchi konfiguratsiyasi\Ma'muriy shablonlar\Windows komponentlari\Windows xatosi haqida hisobot bo'limiga o'tishingiz va siyosatga o'tishingiz kerak. Windows xatosi haqida xabar berishni o'chirib qo'ying.

Siyosat holatini Konfiguratsiya qilinmagandan Yoqilganga o'zgartiring, so'ng Qo'llash va OK tugmasini bosing va Guruh siyosati muharriridan chiqing.

Vista'da xato haqida xabar berishni o'chirib qo'yish

Vista'da xato haqida xabar berishni o'chirish uchun "Ishga tushirish" tugmasini bosing va Boshqarish panelini oching.

Boshqaruv panelini klassik displey rejimiga o'tkazing va ustiga bosing Muammo hisobotlari va yechimlari.

Ko'rib turganingizdek, bizga ikkita variant taklif etiladi. Agar tanlasangiz Muammo yuzaga kelganligini tekshirishimni so'rang, xato haqida xabar berish yoqiladi va sizga ma'lumotni Microsoft-ga yuborish yoki yubormaslik tanlovi beriladi. Agar tanlasangiz Yechimlarni avtomatik tekshirish (tavsiya etiladi) barcha ma'lumotlar avtomatik ravishda Microsoft-ga yuboriladi. Ikkala variant ham biz uchun mos emas, chunki biz ushbu funksiyani butunlay o'chirib qo'ymoqchimiz, shuning uchun biz havolani bosamiz Kengaytirilgan sozlamalar.

Ko'rsatilgan oynada, bo'limda Mening dasturlarim uchun muammo haqida xabar berish... O'chirish-ni tanlang va OK tugmasini bosing.

Ko'rib turganingizdek, avvalgi variantlarni tahrirlash mumkin emas.

Xatolar haqida xabar berish o'chirilganligi haqidagi xabarda Yopish tugmasini bosing.

XP da xato haqida xabar berishni o'chirish

XP da xatolik haqida xabar berishni o'chirish uchun " belgisini o'ng tugmasini bosing Mening kompyuterim" va tanlang Xususiyatlari. Ochilgan oynada yorliqga o'ting Qo'shimcha va tugmani bosing Xatolik hisoboti.

Ochilgan oynada variantni tanlang Xato haqida xabar berishni o'chirib qo'ying. Variant belgisini olib tashlang Ammo muhim xatolik yuz berganda menga xabar bering.

Biz bolaga yaxshi va arzon kiyimni qayerdan sotib olsak, deb o'ylayotgandik. Men Tavsiya qilaman bolalar uchun onlayn-do'kon katta tanlov va arzon narxlar bilan.

Muammolar