Yaddaş zibillərini təhlil etmək üçün WinDBG-nin quraşdırılması və konfiqurasiyası. Windows Sazlama Alətləri: Windows istifadəsi üçün BSOD Sazlama Alətlərinin diaqnostikası və düzəldilməsi

Kritik bir nasazlıq baş verdikdə, Windows əməliyyat sistemi çökür və Mavi Ölüm Ekranı (BSOD) göstərir. Məzmun təsadüfi giriş yaddaşı və baş verən xəta haqqında bütün məlumatlar dəyişdirmə faylına yazılır. Gələn dəfə Windows-un yüklənməsi saxlanmış məlumatlara əsaslanan sazlama məlumatı ilə qəza zibilliyi yaradılır. Sistem hadisələri jurnalında kritik xəta qeydi yaradılır.

Diqqət! Disk alt sistemi uğursuz olarsa və ya Windows yüklənməsinin ilkin mərhələsində kritik xəta baş verərsə, qəza tullantıları yaradılmır.

Windows Crash Dumps növləri

Nümunə olaraq cari əməliyyat sistemi Windows 10-dan istifadə ( Windows Server 2016) sistemin yarada biləcəyi yaddaş boşluqlarının əsas növlərini nəzərdən keçirin:

  • Mini yaddaş tullantıları(256 KB). Bu fayl növü minimal miqdarda məlumat ehtiva edir. O, yalnız BSOD səhv mesajını, sürücülər haqqında məlumatı, qəza zamanı aktiv olan prosesləri və qəzaya səbəb olan proses və ya nüvə ipini ehtiva edir.
  • Yaddaş nüsxəsi. Tipik olaraq kiçik ölçülü - fiziki yaddaş ölçüsünün üçdə biri. Yaddaş yaddaşı ləpəsi mini atışdan daha ətraflıdır. O, drayverlər və nüvə rejimli proqramlar haqqında məlumatı, Windows nüvəsinə və aparat abstraksiya qatına (HAL) ayrılmış yaddaşı və sürücülərə və digər nüvə rejimli proqramlara ayrılmış yaddaşı ehtiva edir.
  • Tam yaddaş boşaltma. Ölçüsü ən böyükdür və sisteminizin RAM-a bərabər yaddaş və bu faylı yaratmaq üçün Windows tərəfindən tələb olunan 1MB tələb olunur.
  • Avtomatik yaddaş boşaltma. Məlumat baxımından nüvə yaddaşının boşaldılmasına uyğundur. Yeganə fərq, dump faylını yaratmaq üçün nə qədər yer istifadə etməsidir. Bu fayl növü Windows 7-də mövcud deyildi. Windows 8-də əlavə edildi.
  • Aktiv yaddaş boşaltma. Bu tip sistem nasazlığının səbəbini müəyyən edə bilməyən elementləri aradan qaldırır. Bu, Windows 10-a əlavə edildi və virtual maşından istifadə edirsinizsə və ya sisteminiz Hyper-V hostudursa xüsusilə faydalıdır.

Windows-da yaddaş dempinqini necə aktivləşdirmək olar?

Win + Pause istifadə edərək, sistem parametrləri pəncərəsini açın, " seçin. Əlavə seçimlər sistemləri"(Qabaqcıl sistem parametrləri). İçində " əlavə olaraq" (Qabaqcıl), bölmə "" (Başlanğıc və Bərpa) düyməsini basın " Seçimlər"(Parametrlər). Açılan pəncərədə sistem uğursuz olduqda görüləcək tədbirləri konfiqurasiya edin. yoxlayın " Hadisələri sistem qeydinə qeyd edin" (Sistem jurnalına hadisə yazın), sistem çökdükdə yaradılmalı olan tullantı növünü seçin. Əgər qeyd qutusunda " Mövcud dump faylını dəyişdirin"(Mövcud faylın üzərinə yazın) qutunu işarələyin, hər dəfə nasazlıq olduqda faylın üzərinə yazılacaq. Bu qutunun işarəsini silmək daha yaxşıdır, onda təhlil üçün daha çox məlumatınız olacaq. Həmçinin avtomatik yenidən başladın deaktiv edin.

Əksər hallarda, BSOD-un səbəbini təhlil etmək üçün kiçik bir yaddaş boşaltma kifayət edəcəkdir.

İndi, bir BSOD meydana gəldikdə, dump faylını təhlil edə və uğursuzluğun səbəbini tapa bilərsiniz. Mini dump standart olaraq %systemroot%\minidump qovluğunda saxlanılır. Dump faylını təhlil etmək üçün proqramı istifadə etməyi məsləhət görürəm WinDBG(Microsoft Kernel Debugger).

WinDBG-nin Windows-da quraşdırılması

Utility WinDBG daxil" Windows 10 SDK"(Windows 10 SDK). .

Fayl çağırılır winsdksetup.exe, ölçüsü 1.3 MB.

Quraşdırmanı işə salın və tam olaraq nə etmək istədiyinizi seçin - paketi bu kompüterə quraşdırın və ya digər kompüterlərə quraşdırmaq üçün onu endirin. Paketi yerli kompüterə quraşdıraq.

Siz bütün paketi quraşdıra bilərsiniz, lakin yalnız sazlama alətini quraşdırmaq üçün seçin Windows üçün sazlama alətləri.

Quraşdırıldıqdan sonra WinDBG qısa yolları başlanğıc menyusunda tapıla bilər.

.dmp fayllarının WinDBG ilə əlaqələndirilməsinin qurulması

Dump faylları açmaq üçün sadə bir klik ilə, .dmp uzantısını WinDBG yardım proqramına uyğunlaşdırın.

  1. Açıq komanda xətti administrator olaraq və 64 bitlik sistem üçün əmrləri işə salın: cd C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
    windbg.exe – IA
    32 bitlik sistem üçün:
    C:\Proqram Faylları (x86)\Windows Kitləri\10\Debuggers\x86
    windbg.exe – IA
  2. Nəticədə, fayl növləri: .DMP, .HDMP, .MDMP, .KDMP, .WEW WinDBG-yə uyğunlaşdırılacaq.

WinDBG-də sazlama simvolu serverinin qurulması

Sazlama simvolları (debug simvolları və ya simvol faylları) icra olunan fayl ilə birlikdə proqramın tərtibi zamanı yaradılan məlumat bloklarıdır. Belə verilənlər bloklarında dəyişən adları, funksiyalar, kitabxanalar və s. Proqramı yerinə yetirərkən bu məlumat lazım deyil, lakin onu sazlayarkən faydalıdır. Microsoft komponentləri Microsoft Symbol Server vasitəsilə paylanmış simvollarla tərtib edilir.

WinDBG-ni konfiqurasiya edin Microsoft istifadəsi Simvol Server:

  • WinDBG-ni açın;
  • Menyuya keçin Fayl –> Simvol Fayl Yolu;
  • Microsoft veb saytından sazlama simvollarını yükləmək üçün URL və keşi saxlamaq üçün qovluqdan ibarət sətir yazın: SRV*E:\Sym_WinDBG*http://msdl.microsoft.com/download/symbols Nümunədə keş endirilib. E:\Sym_WinDBG qovluğuna hər hansı birini göstərə bilərsiniz.
  • Menyuya edilən dəyişiklikləri yadda saxlamağı unutmayın Fayl–>İş sahəsini saxla;

WinDBG yerli qovluqda simvolları axtaracaq və orada lazımi simvolları tapmasa, avtomatik olaraq göstərilən saytdan simvolları endirəcək. Öz simvol qovluğunuzu əlavə etmək istəyirsinizsə, bunu belə edə bilərsiniz:

SRV*E:\Sym_WinDBG*http://msdl.microsoft.com/download/symbols;c:\Symbols

İnternet bağlantınız yoxdursa, əvvəlcə simvol paketini Windows Symbol Packages resursundan endirin.

WinDBG-də qəza zibilinin təhlili

WinDBG sazlayıcısı dump faylını açır və yerli qovluqdan və ya İnternetdən sazlama üçün lazımi simvolları yükləyir. Bu proses zamanı WinDBG-dən istifadə edə bilməzsiniz. Pəncərənin aşağı hissəsində (sazlayıcı əmr satırında) mesaj görünür Debugee qoşulmayıb.

Əmrlər pəncərənin aşağı hissəsində yerləşən komanda xəttinə daxil edilir.

Diqqət edilməli olan ən vacib şey, həmişə onaltılıq sistemdə göstərilən və formaya malik olan səhv kodudur. 0xXXXXXXXXX(seçimlərdən birində göstərilmişdir - STOP: , 07/02/2019 0008F, 0x8F). Bizim nümunəmizdə səhv kodu 0x139-dur.

Sazlayıcı!analyze -v əmrini yerinə yetirməyi təklif edir, sadəcə olaraq siçanı linkin üzərinə gətirin və klikləyin. Bu əmr nə üçündür?

  • O, ilkin yaddaş boşaltma analizini həyata keçirir və təmin edir ətraflı məlumat təhlilə başlamaq üçün.
  • Bu əmr STOP kodunu və xətanın simvolik adını göstərəcək.
  • Bu, qəzaya səbəb olan əmr zənglərinin yığınını göstərir.
  • Bundan əlavə, burada IP ünvanı, proses və qeydiyyat xətaları göstərilir.
  • Komanda problemi həll etmək üçün hazır tövsiyələr verə bilər.

Əmrini yerinə yetirdikdən sonra təhlil edərkən diqqət etməli olduğunuz əsas məqamlar!analyze –v (siyahı natamam).

1: kd> !analiz -v


* *
* Səhvlərin yoxlanılması təhlili *
* *
*****************************************************************************
STOP xətasının simvolik adı (BugCheck)
KERNEL_SECURITY_CHECK_FAILURE (139)
Xətanın təsviri (Land komponenti kritik məlumat strukturunu pozdu. Bu pozulma potensial olaraq təcavüzkarın bu maşın üzərində nəzarəti ələ keçirməsinə imkan verə bilər):

Bir nüvə komponenti kritik məlumat strukturunu pozdu. Korrupsiya potensial olaraq zərərli istifadəçiyə bu maşın üzərində nəzarəti əldə etməyə imkan verə bilər.
Səhv arqumentləri:

Arqumentlər:
Arg1: 0000000000000003, A LIST_ENTRY pozulub (yəni, ikiqat silin).
Arg2: ffffd0003a20d5d0, səhv yoxlamasına səbəb olan istisna üçün tələ çərçivəsinin ünvanı
Arg3: ffffd0003a20d528, Səhv yoxlamasına səbəb olan istisna üçün istisna qeydinin ünvanı
Arg4: 0000000000000000, Qorunur
Sazlama Təfərrüatları:
------------------

Sayğac sistemin oxşar xəta ilə neçə dəfə qəzaya uğradığını göstərir:

CUSTOMER_CRASH_COUNT: 1

DEFAULT_BUCKET_ID: FAIL_FAST_CORRUPT_LIST_ENTRY

Qısaldılmış formatda STOP xəta kodu:

BUGCHECK_STR: 0x139

Arızanın baş verdiyi proses (mütləq xətanın səbəbi deyil, sadəcə uğursuzluq zamanı bu proses yaddaşda işləyirdi):

PROCESS_NAME: sqlservr.exe

Xəta Kodunun Təsviri: Sistem bu proqramda stack bufer daşması aşkar etdi ki, bu da təcavüzkarın bu proqrama nəzarəti ələ keçirməsinə imkan verə bilər.

ERROR_CODE: (NTSTATUS) 0xc0000409 - Sistem bu proqramda yığın-əsaslı buferin aşdığını aşkar etdi. Bu həddən artıq yüklənmə potensial olaraq zərərli istifadəçiyə bu proqram üzərində nəzarəti əldə etməyə imkan verə bilər.
EXCEPTION_CODE: (NTSTATUS) 0xc0000409 - Sistem bu proqramda yığın-əsaslı buferin çoxalmasını aşkar etdi. Bu həddən artıq yüklənmə potensial olaraq zərərli istifadəçiyə bu proqram üzərində nəzarəti əldə etməyə imkan verə bilər.

Yığındakı son zəng:

SON_NƏZARƏT_KÖÇÜRÜ: fffff8040117d6a9-dan fffff8040116b0a0-a

Uğursuzluq zamanı zəng yığını:

STACK_TEXT:
ffffd000`3a20d2a8 fffff804`0117d6a9: 00000000`00000139 00000000`00000003 ffffd000`3a20d5d0 ffffd000`3a20dkeK!
ffffd000`3a20d2b0 fffff804`0117da50: ffffe000`f3ab9080 ffffe000`fc37e001 ffffd000`3a20d5d0 fffff804`0116e2a2: Cht!06dckis
ffffd000`3a20d3f0 fffff804`0117c150: 00000000`00000000 00000000`00000000 00000000`00000000 00000000000F0000000000F000000000ispa! d 0
ffffd000`3a20d5d0 fffff804`01199482: ffffc000`701ba270 ffffc000`00000001 000000ea`73f68040 fffff804`000006f9:Ra30dfd!
ffffd000`3a20d760 fffff804`014a455d: 00000000`00000001 ffffd000`3a20d941 ffffe000`fcacb000 ffffd000`3a20d951: ?? ::FNODOBFM::`string"+0x17252
ffffd000`3a20d8c0 fffff804`013a34ac: 00000000`00000004 00000000`00000000 ffffd000`3a20d9d8 ffffe001`0a34nt9d8 ffffe001`0a34ntc60000:Ta34ntc600er!
ffffd000`3a20d990 fffff804`0117d313: ffffffff`fffffffe 00000000`00000000 00000000`00000000 000000eb`a0cf1380tW49te!
ffffd000`3a20da90 00007ffb`475307da: 00000000`00000000 00000000`00000000 00000000`00000000 0000000000 00000000000 0000000000000000000000dCopyyst! x13
000000ee`f25ed2b8 00000000`00000000: 00000000`00000000 00000000`00000000 00000000`00000000 00000000`0000000007ff: 307da

Xətanın baş verdiyi kod bölməsi:

FOLLOWUP_IP:
nt!KiFastFailDispatch+d0
fffff804`0117da50 c644242000 mov bayt ptr ,0
FAULT_INSTR_CODE: 202444c6
SYMBOL_STACK_INDEX: 2
SYMBOL_NAME: nt!KiFastFailDispatch+d0
FOLLOWUP_NAME: Maşın Sahibi

Kernel obyekt cədvəlində modulun adı. Əgər analizator aşkar edə bilsəydi problemli sürücü, ad MODULE_NAME və IMAGE_NAME sahələrində göstərilir:

MODULE_NAME:nt
IMAGE_NAME: ntkrnlmp.exe

1: kd> lmvm nt
Tam modul siyahısına baxın
Yüklənmiş simvol şəkil faylı: ntkrnlmp.exe
Xəritəli yaddaş şəkil faylı: C:\ProgramData\dbg\sym\ntoskrnl.exe\5A9A2147787000\ntoskrnl.exe
Şəkil yolu: ntkrnlmp.exe
Şəklin adı: ntkrnlmp.exe
Daxili ad: ntkrnlmp.exe
Orijinal fayl adı: ntkrnlmp.exe
Məhsul versiyası: 6.3.9600.18946
Fayl versiyası: 6.3.9600.18946 (winblue_ltsb_escrow.180302-1800)

Verilən nümunədə təhlil ntkrnlmp.exe nüvə faylına işarə etdi. Yaddaş boşaltma təhlili sistem sürücüsünə (məsələn, win32k.sys) və ya nüvə faylına (ntkrnlmp.exe nümunəmizdə olduğu kimi) işarə etdikdə, bu, çox güman ki, bu fayl problemin səbəbi deyil. Çox vaxt problemin cihazın sürücüsündə olduğu ortaya çıxır, BIOS parametrləri və ya avadanlığın nasazlığı.

Əgər BSOD-nun üçüncü tərəf sürücüsü tərəfindən törədildiyini görsəniz, onun adı MODULE_NAME və IMAGE_NAME dəyərlərində göstəriləcək.

Misal üçün:

Şəkil yolu: \SystemRoot\system32\drivers\cmudaxp.sys
Şəklin adı: cmudaxp.sys

Sürücü faylının xüsusiyyətlərini açın və versiyasını yoxlayın. Əksər hallarda sürücülərlə bağlı problem onların yenilənməsi ilə həll olunur.

22 iyun 2010-cu il

Əvvəllər Windbg ayrıca yükləmək üçün mövcud idi. Lakin ən son versiyalar üçün Microsoft onu Windows SDK-nın bir hissəsi kimi saxlayır. Zəhmət olmasa aşağıdakı yükləmə linklərini tapın.

Windows 10

Windows 7 üçün Windbg proqramının ən son versiyasını https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk linkindən yükləmək olar.

Windows 7

Yuxarıdakı linklərdən quraşdırıcıları yükləyin. Qeyd edək ki, bu, bütün SDK-nı endirmir, sadəcə quraşdırıcıdır. Faylı işə saldıqdan sonra, bacararsan hansı alətləri yükləmək istədiyinizi seçin. Yalnız Windbg ilə maraqlanırsınızsa, hər şeyi istisna edə bilərsiniz və yalnız 'Ümumi Utilities' altında 'Debugging tools' seçə bilərsiniz.

Yuxarıdakı paket windbg 6.12 versiyasını quraşdırır. Windbg-ni tez quraşdırmaq istəyirsinizsə, buradan endirilə bilən köhnə versiyaya (6.11) keçə bilərsiniz.
bu yazının sonunda verilmiş link.

Quraşdırmanı etdikdən sonra proqramı Başlat Menyu -> Bütün Proqramlar -> Windows üçün Sazlama Alətləri -> Windbg-də tapa bilərsiniz.

WinDBG təqdimatı - 1-ci hissə

Aleksandr Antipov

WinDBG əla sazlayıcıdır. Ola bilsin ki, o, çox istifadəçi dostu interfeysə malik deyil və standart olaraq qara fonu yoxdur, lakin o, hazırda Windows ƏS-də ən güclü və sabit sazlayıcılardan biridir. Bu yazıda mən sizi WinDBG-nin əsasları ilə tanış edəcəyəm ki, onunla başlaya biləsiniz.


WinDBG əla sazlayıcıdır. Ola bilsin ki, o, çox istifadəçi dostu interfeysə malik deyil və standart olaraq qara fonu yoxdur, lakin o, hazırda Windows ƏS-də ən güclü və sabit sazlayıcılardan biridir. Bu yazıda mən sizi WinDBG-nin əsasları ilə tanış edəcəyəm ki, onunla başlaya biləsiniz.

Bu, WinDBG-yə həsr olunmuş seriyanın ilk məqaləsidir. Bu seriyaya daxil olan bütün məqalələrin siyahısı:

  • 1-ci hissə – quraşdırma, interfeys, simvollar, uzaqdan/yerli sazlama, yardım sistemi, modullar, registrlər.
  • 2-ci hissə – kəsilmə nöqtələri.
  • 3-cü hissə – yaddaşın yoxlanılması, proqramın addım-addım ayıklanması, məsləhətlər və fəndlər.

Bu yazıda biz quraşdırma və prosesə qoşulma, sonrakı məqalələrdə isə kəsilmə nöqtələri, addım-addım sazlama və yaddaş yoxlamasına baxacağıq.

WinDBG quraşdırılması

Windows 7 ilə müqayisədə Windows 8-də WinDBG quraşdırma prosesi kiçik dəyişikliklərə məruz qalıb. Bu bölmədə biz hər ikisi üçün sazlayıcı quraşdırmaya baxacağıq əməliyyat sistemləri.

Windows 8-də WinDBG-nin quraşdırılması

Windows 8-də WinDBG Windows Sürücü Kitinə (WDK) daxildir. Siz Visual Studio və WDK quraşdıra və ya WinDBG daxil olmaqla Windows 8.1 üçün Sazlama Alətləri paketini ayrıca quraşdıra bilərsiniz.

Quraşdırıcı sizdən WinDBG-ni yerli olaraq quraşdırmaq və ya başqa kompüter üçün bütün inkişaf paketini yükləmək istəməyinizi soruşacaq. Sonuncu mahiyyətcə ekvivalentdir oflayn quraşdırıcı, gələcəkdə paketi digər sistemlərə quraşdırmaq istəyirsinizsə, bu çox rahatdır.

Şəkil 1: Quraşdırma növünün seçilməsi

Növbəti pəncərədə, "Windows üçün Debugging Tools" istisna olmaqla, bütün elementləri işarədən çıxarmalı və "Yükləmə" düyməsini sıxmalısınız.

Quraşdırıcı işini bitirdikdən sonra paketin yükləndiyi qovluğa gedin (defolt olaraq c:\Users\Username\Downloads\Windows Kits\8.1\StandaloneSDK) və quraşdırma prosedurundan keçin.

Windows 7 və daha əvvəlki sistemlərdə WinDBG quraşdırılması

Windows 7 və daha əvvəlki versiyalar üçün WinDBG Windows SDK və .Net Framework-ə daxil olan "Windows üçün Debugging Tools" paketinin bir hissəsidir. Quraşdırma zamanı sizdən quraşdırıcını yükləməlisiniz və sonra "Windows üçün Sazlama Alətləri"ni seçməlisiniz.

Quraşdırma zamanı gələcək quraşdırmaları asanlaşdırmaq üçün müstəqil quraşdırıcı yaratmaq üçün "Yenidən paylana bilən paketlər" altında "Sazlama Alətləri" seçimini seçirəm.

Şəkil 2: Bağımsız quraşdırıcı yaratmaq üçün quraşdırma seçimlərinin seçilməsi

Quraşdırma tamamlandıqdan sonra müxtəlif platformalar üçün WinDBG quraşdırıcılarınız olmalıdır (c:\Program Files\Microsoft SDKs\Windows\v7.1\Redist\Debugging Tools for Windows\ kataloqunda).

Şəkil 3: Müxtəlif platformalar üçün WinDBG quraşdırıcıları olan qovluq

WinDBG interfeysi

Şəkil 4: WinDBG görünüşü

İlk dəfə görürsən görünüş WinDGB, siz sazlayıcının qorxulu dərəcədə sadə olduğunu başa düşəcəksiniz. WinDBG funksiyalarının əksəriyyəti prosesin sazlanması zamanı öyrənilir. İnterfeysi təsvir etməyə vaxt sərf etmək əvəzinə, sonrakı bölmələrdə yalnız ən vacib məqamları əhatə edəcəyik.

Sazlama interfeysi haqqında bilməli olduğunuz ən əsas şey iki sahədən ibarət olan əmr pəncərəsidir. Birinci sahə: əmrin icrasının nəticəsinin göstərildiyi pəncərə. İkinci sahə: əmrlərin daxil edilməsi üçün kiçik mətn sahəsi.

Şəkil 5: WinDBG Komanda Pəncərəsi

Simvollar

Əksər hallarda WinDBG heç bir xüsusi parametr tələb etmir və qutudan kənarda düzgün işləyir. Ancaq konfiqurasiya edilməli olan vacib bir şey simvollardır. Simvollar proqram tərtib edildikdə icra olunan fayl ilə birlikdə yaradılan və sazlama məlumatlarını (funksiyalar və dəyişən adları) ehtiva edən fayllardır. Sazlama məlumatı, sazlama və ya sökmə zamanı proqramın funksionallığını yoxlamağa imkan verir. Bir çox Microsoft komponentləri Microsoft Symbol Server vasitəsilə paylanan simvollarla tərtib edilmişdir. İcra edilə bilən faylların qalan hissəsi ilə hər şey o qədər də çəhrayı deyil - çox nadir hallarda debug məlumatı olan fayllar proqrama daxil edilir. Əksər hallarda şirkətlər bu cür məlumatlara çıxışı məhdudlaşdırırlar.

WinDBG-ni Microsoft Symbol Server istifadə etmək üçün konfiqurasiya etmək üçün Fayl:Symbol Fayl Yolu bölməsinə keçin və yolu SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols-a təyin edin. Əlbəttə, ulduzların ayırıcı kimi istifadə edilməsi bir az qəribədir. Microsoft Symbol Server qurduqdan sonra simvollar C:\Symbols qovluğuna endiriləcək.

Şəkil 6: Microsoft Simvol Serverinin qurulması

WinDBG lazım olduqda ikili fayllar üçün simvolları avtomatik yükləyəcək. Siz həmçinin öz simvol qovluğunuzu əlavə edə bilərsiniz, məsələn:

SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols;c:\SomeOtherSymbolFolder

Sazlama zamanı simvolların əlavə edilməsi

Sazlama zamanı simvolları idxal etmək lazımdırsa, bunu .sympath proqramından istifadə edərək edə bilərsiniz (prosesə qoşulduqda əmr pəncərəsi görünəcək). Məsələn, c:\SomeOtherSymbolFolder qovluğunu əlavə etmək üçün aşağıdakı əmri daxil edin:

0:025> .sympath+ c:\SomeOtherSymbolFolder
Simvol axtarış yolu: SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols;c:\SomeOtherSymbolFolder
Genişləndirilmiş Simvol axtarış yolu: srv*c:\symbols*http://msdl.microsoft.com/download/symbols;c:\someothersymbolfolder

Yolları əlavə etdikdən və ya dəyişdirdikdən sonra simvolları yenidən yükləmək yaxşı fikirdir:

0:025> .yenidən yükləyin
Cari modulların yenidən yüklənməsi
................................................................
...............................................

Yüklənmiş simvolların yoxlanılması

Hansı modullarda simvolların yükləndiyini görmək üçün x*! əmrindən istifadə edə bilərsiniz. WinDBG yalnız lazım olduqda simvolları yükləsə də, x*! yüklənə bilən simvolları göstərəcək. Siz ld * əmrindən istifadə edərək simvolları yükləməyə məcbur edə bilərsiniz (bu bir az vaxt ala bilər və siz Debug:Break-ə keçərək prosesi dayandıra bilərsiniz).

İndi hər bir modul üçün simvolları görə bilərik.

Şəkil 8: Simvolların siyahısı

Yerli prosesin sazlanması

Yerli prosesi sazlayarkən iki seçiminiz var:

  1. Artıq işləyən bir prosesə qoşulun.
  2. WinDBG vasitəsilə prosesi başlayın.

Hər bir metodun öz üstünlükləri və mənfi cəhətləri var. Deyək ki, siz WinDBG vasitəsilə bir proqramı işlədirsinizsə, o zaman tətbiqin çökməsinə səbəb ola biləcək bəzi xüsusi sazlama seçimlərinə (məsələn, yığın sazlama) çıxışınız var. Digər tərəfdən, onlara sazlayıcı əlavə etdikdə qəzaya uğrayan proqramlar da var. Bəzi proqramlar (xüsusilə zərərli proqramlar) başlanğıc zamanı sistemdə sazlayıcının olub-olmadığını yoxlayır və buna görə də bu halda artıq işləyən prosesə yapışmağın mənası var. Bəzən siz başlanğıc zamanı bəzi parametrləri təyin edən Windows xidmətini sazlayırsınız, ona görə də sazlama prosesini sadələşdirmək üçün xidməti sazlayıcı vasitəsilə işə salmaqdansa, işləyən prosesə qoşulmaq daha yaxşıdır. Bəzi insanlar iddia edirlər ki, bir prosesi sazlayıcı vasitəsilə idarə etmək performansa ciddi təsir göstərir. Bir sözlə, hər ikisini sınayın və sizə ən uyğun olanı seçin. Nədənsə müəyyən bir üsula üstünlük verirsinizsə, şərhlərdə fikirlərinizi bölüşün!

Prosesə başlamaq

Əgər siz yerli olaraq işləyən və şəbəkə ilə əlaqə yaratmayan müstəqil proqramda sazlama işləri aparırsınızsa, onu WinDBG vasitəsilə işə salmaq istəyə bilərsiniz. Ancaq bu, artıq işləyən bir prosesə qoşula bilməyəcəyiniz demək deyil. Sizin üçün ən uyğun olan üsulu seçin.

Prosesə başlamaq çətin deyil. "Fayl: İcra edilə biləni açın" bölməsinə gedin və sazlamaq istədiyiniz icra olunan faylı seçin. Siz həmçinin arqumentləri təyin edə və ya başlanğıc kataloqunu təyin edə bilərsiniz:

Şəkil 9: Seçim icra edilə bilən fayl ayıklama üçün

Proses bağlantısı

Artıq işləyən prosesə qoşulmaq da çətin deyil. Bununla belə, unutmayın ki, bəzi hallarda sazlamaq istədiyiniz dəqiq prosesi tapmaq üçün vaxt lazım ola bilər. Məsələn, bəzi brauzerlər hər tab üçün bir ana proses, sonra isə daha bir neçə proses yaradır. Beləliklə, sazladığınız qəza zibilindən asılı olaraq, əsas prosesdən çox nişanla əlaqəli prosesə qoşulmaq istəyə bilərsiniz.

Artıq işləyən prosesə əlavə etmək üçün “Fayl: Prosesə əlavə et” bölməsinə keçin və sonra prosesin PID və ya adını seçin. Unutmayın ki, prosesə qoşulmaq üçün müvafiq hüquqlarınız olmalıdır.

Şəkil 10: Bağlanacaq prosesin seçilməsi

Qoşulduqdan sonra proqram öz işini dayandırarsa, müvafiq xananı qeyd etməklə “Qeyri-invaziv” rejimindən istifadə edə bilərsiniz.

Uzaqdan bir prosesin sazlanması

Bəzən uzaq bir sistemdə bir prosesi sazlamaq lazım ola bilər. Bu problemi istifadə etmək əvəzinə, yerli sazlayıcıdan istifadə etməklə həll etmək daha rahat olardı virtual maşın və ya RDP. Və ya bəlkə siz LoginUI.exe prosesini düzəldirsiniz, bu prosesə yalnız sistem kilidləndikdə əlçatan olur. Bu kimi hallarda siz WinDBG-nin yerli versiyasından istifadə edə və proseslərə uzaqdan qoşula bilərsiniz. Bu problemləri həll etməyin ən çox yayılmış iki yolu var.

Mövcud sazlama sessiyaları

Əgər siz artıq bir proqramı yerli olaraq sazlamağa başlamışsınızsa (bir prosesi WinDBG vasitəsilə qoşmaqla və ya işlətməklə), siz xüsusi bir əmr daxil edə bilərsiniz və WinDBG uzaqdan sazlayıcının qoşula biləcəyi “dinləyici” işə salacaq. Bunu etmək üçün .server əmrindən istifadə edin:

Server tcp:port=5005

Yuxarıdakı əmri yerinə yetirdikdən sonra belə bir xəbərdarlıq görə bilərsiniz:

Şəkil 11: Dinləyici yaratmaq əmrini yerinə yetirdikdən sonra görünə biləcək xəbərdarlıq mesajı

WinDBG daha sonra serverin işlədiyini bildirəcək:

0:005> .server tcp:port=5005
0: -uzaqdan tcp:Port=5005,Server=USER-PC

İndi “Fayl: Uzaqdan Uzaq Sessiyaya Qoşul” bölməsinə keçərək və mətn sahəsinə aşağıdakı kimi bir şey daxil etməklə uzaq hostdan mövcud sazlama sessiyasına qoşula bilərsiniz: tcp:Port=5005,Server=192.168.127.138

Şəkil 12: Sazlama sessiyasına uzaqdan qoşulma

Qoşulduqdan sonra uzaq müştəridə təsdiq alacaqsınız:


Server başladı. Müştəri bu əmr sətirlərindən hər hansı biri ilə əlaqə saxlaya bilər
0: -uzaqdan tcp:Port=5005,Server=USER-PC
MACHINENAME\User (tcp 192.168.127.138:13334) 16 dekabr 09:03:03 2013-cü il tarixində qoşuldu

və sazlayıcının yerli versiyasındakı mesaj:

MACHINENAME\User (tcp 192.168.127.138:13334) 16 dekabr 09:03:03 2013-cü il tarixində qoşuldu

Uzaq serverin yaradılması

Siz həmçinin WinDBG ilə ayrıca server yarada, ona uzaqdan qoşula və sazlamaq üçün prosesi seçə bilərsiniz. Bu, prosesləri sazlamağı planlaşdırdığınız dbgsrv.exe faylından istifadə etməklə edilə bilər. Belə bir serveri işə salmaq üçün aşağıdakı əmri yerinə yetirin:

dbgsrv.exe -t tcp:port=5005

Şəkil 13: Uzaq serverin işə salınması

Yenə də qəbul etməli olduğunuz təhlükəsizlik xəbərdarlığı ala bilərsiniz:

Şəkil 14: Başlama zamanı görünə biləcək təhlükəsizlik mesajı debug server

Fayl: Remote Stub-a qoşulun və mətn sahəsinə aşağıdakı sətri daxil etməklə sazlama serverinə qoşula bilərsiniz: tcp:Port=5005,Server=192.168.127.138

Şəkil 15: Sazlama serverinə qoşulma

Qoşulduqdan sonra siz qoşulduğunuz heç bir siqnal qəbul etməyəcəksiniz, lakin “Fayl: Prosesə əlavə et” bölməsinə keçsəniz, sazlama server proseslərinin siyahısını görəcəksiniz (dbgsrv.exe-nin işlədiyi yerdə). İndi prosesə sanki yerli olaraq edirmiş kimi qoşula bilərsiniz.

Kömək sistemi

WinDBG-də yardım sistemi əladır. Yeni bir şey öyrənməklə yanaşı, bir əmr haqqında məlumat əldə edə bilməlisiniz. WinDBG Yardımına daxil olmaq üçün .hh əmrindən istifadə edin:

Siz həmçinin müəyyən bir əmr üçün yardım məlumatı əldə edə bilərsiniz. Məsələn, .reload əmri ilə kömək almaq üçün aşağıdakı əmrdən istifadə edin:

windbg> .hh .yenidən yükləyin

Və ya sadəcə Yardım:Məzmun bölməsinə keçin.

Modullar

Proqram işləyərkən tətbiqin funksionallığını təmin etmək üçün müxtəlif modullar idxal olunur. Buna görə də, hansı modulların tətbiq tərəfindən idxal edildiyini bilsəniz, onun necə işlədiyini daha yaxşı başa düşə bilərsiniz. Bir çox hallarda, siz icra olunan faylın özündən çox, proqram tərəfindən yüklənmiş xüsusi modulu sazlayacaqsınız.

Prosesə qoşulduqdan sonra WinDBG avtomatik olaraq yüklənmiş modulları göstərəcək. Məsələn, calc.exe-yə qoşulduqdan sonra aşağıdakı modullar var:

Microsoft (R) Windows Debugger Versiyası 6.12.0002.633 X86
Müəllif hüququ (c) Microsoft Corporation. Bütün hüquqlar qorunur.

*** Gözləyən əlavə ilə gözləyin
Simvol axtarış yolu: SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
İcra edilə bilən axtarış yolu:
ModLoad: 00a70000 00b30000 C:\Windows\system32\calc.exe
ModLoad: 77630000 7776c000 C:\Windows\SYSTEM32\ntdll.dll
ModLoad: 77550000 77624000 C:\Windows\system32\kernel32.dll
ModLoad: 75920000 7596a000 C:\Windows\system32\KERNELBASE.dll
ModLoad: 76410000 77059000 C:\Windows\system32\SHELL32.dll
ModLoad: 77240000 772ec000 C:\Windows\system32\msvcrt.dll
ModLoad: 76300000 76357000 C:\Windows\system32\SHLWAPI.dll
ModLoad: 75cd0000 75d1e000 C:\Windows\system32\GDI32.dll
ModLoad: 75fa0000 76069000 C:\Windows\system32\USER32.dll
ModLoad: 777b0000 777ba000 C:\Windows\system32\LPK.dll
Mod Yükləmə: 774b0000 7754d000 C:\Windows\system32\USP10.dll
ModLoad: 73110000 732a0000 C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_
6595b64144ccf1df_1.1.7600.16385_none_72fc7cbf861225ca\gdiplus.dll
Mod Yükləmə: 75a80000 75bdc000 C:\Windows\system32\ole32.dll
ModLoad: 76360000 76401000 C:\Windows\system32\RPCRT4.dll
ModLoad: 777c0000 77860000 C:\Windows\system32\ADVAPI32.dll
ModLoad: 75be0000 75bf9000 C:\Windows\SYSTEM32\sechost.dll
ModLoad: 76270000 762ff000 C:\Windows\system32\OLEAUT32.dll
ModLoad: 74590000 745d0000 C:\Windows\system32\UxTheme.dll
ModLoad: 74710000 748ae000 C:\Windows\WinSxS\x86_microsoft.windows.common-
ModLoad: 703d0000 70402000 C:\Windows\system32\WINMM.dll
ModLoad: 74c80000 74c89000 C:\Windows\system32\VERSION.dll
ModLoad: 77770000 7778f000 C:\Windows\system32\IMM32.DLL
ModLoad: 75c00000 75ccc000 C:\Windows\system32\MSCTF.dll
ModLoad: 74130000 7422b000 C:\Windows\system32\WindowsCodecs.dll
ModLoad: 74260000 74273000 C:\Windows\system32\dwmapi.dll
ModLoad: 756d0000 756dc000 C:\Windows\system32\CRYPTBASE.dll
ModLoad: 75e60000 75ee3000 C:\Windows\system32\CLBCatQ.DLL
ModLoad: 6ef10000 6ef4c000 C:\Windows\system32\oleacc.dll

Daha sonra sazlama prosesində lmf əmrindən istifadə edərək bu siyahını yenidən göstərə bilərsiniz:

0:005>lmf
başlanğıc modulunun adı
00a70000 00b30000 calc C:\Windows\system32\calc.exe
6ef10000 6ef4c000 oleacc C:\Windows\system32\oleacc.dll
703d0000 70402000 WINMM C:\Windows\system32\WINMM.dll
73110000 732a0000 gdiplus C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_
1.1.7600.16385_none_72fc7cbf861225ca\gdiplus.dll
74130000 7422b000 WindowsCodecs C:\Windows\system32\WindowsCodecs.dll
74260000 74273000 dwmapi C:\Windows\system32\dwmapi.dll
74590000 745d0000 UxTheme C:\Windows\system32\UxTheme.dll
74710000 748ae000 COMCTL32 C:\Windows\WinSxS\x86_microsoft.windows.common-
controls_6595b64144ccf1df_6.0.7600.16385_none_421189da2b7fabfc\COMCTL32.dll
74c80000 74c89000 VERSION C:\Windows\system32\VERSION.dll
756d0000 756dc000 CRYPTBASE C:\Windows\system32\CRYPTBASE.dll
75920000 7596a000 KERNELBASE C:\Windows\system32\KERNELBASE.dll
75a80000 75bdc000 ole32 C:\Windows\system32\ole32.dll
75be0000 75bf9000 sechost C:\Windows\SYSTEM32\sechost.dll
75c00000 75ccc000 MSCTF C:\Windows\system32\MSCTF.dll
75cd0000 75d1e000 GDI32 C:\Windows\system32\GDI32.dll
75e60000 75ee3000 CLBCatQ C:\Windows\system32\CLBCatQ.DLL
75fa0000 76069000 USER32 C:\Windows\system32\USER32.dll
76270000 762ff000 OLEAUT32 C:\Windows\system32\OLEAUT32.dll
76300000 76357000 SHLWAPI C:\Windows\system32\SHLWAPI.dll
76360000 76401000 RPCRT4 C:\Windows\system32\RPCRT4.dll
76410000 77059000 SHELL32 C:\Windows\system32\SHELL32.dll
77240000 772ec000 msvcrt C:\Windows\system32\msvcrt.dll
774b0000 7754d000 USP10 C:\Windows\system32\USP10.dll
77550000 77624000 kernel32 C:\Windows\system32\kernel32.dll
77630000 7776c000 ntdll C:\Windows\SYSTEM32\ntdll.dll
77770000 7778f000 IMM32 C:\Windows\system32\IMM32.DLL
777b0000 777ba000 LPK C:\Windows\system32\LPK.dll
777c0000 77860000 ADVAPI32 C:\Windows\system32\ADVAPI32.dll

“lmf m” əmrindən istifadə edərək müəyyən bir modulun yükləmə ünvanını da öyrənə bilərsiniz:

0:005> lmf m kernel32
başlanğıc modulunun adı
77550000 77624000 kernel32 C:\Windows\system32\kernel32.dll

Siz həmçinin!dh uzantısından istifadə edərək müəyyən modulun şəkil başlığı haqqında məlumat əldə edə bilərsiniz ( Nida işarəsi uzadılmasını göstərir):

0:005> !dh kernel32

Fayl növü: DLL
FAYL BAŞLIĞININ DƏYƏRLƏRİ
14C maşını (i386)
4 bölmə sayı
4A5BDAAD vaxt tarix möhürü Bazar ertəsi 13 iyul 21:09:01 2009

0 fayl göstəricisi simvol cədvəlinə
0 simvol sayı
Əlavə başlığın E0 ölçüsü
2102 xüsusiyyətləri
İcra edilə bilən
32 bit söz maşını
DLL

İSTEĞE BAĞLI BAŞLIQ DƏYƏRLƏRİ
10B sehr#
9.00 linker versiyası
C4600 kodun ölçüsü
Başlanmış məlumatın C800 ölçüsü
Başlanmamış məlumatın 0 ölçüsü
510C5 giriş nöqtəsinin ünvanı
1000 əsas kod
----- yeni -----
77550000 şəkil bazası
1000 bölmə hizalanması
200 fayl hizalanması
3 alt sistem (Windows CUI)
6.01 əməliyyat sisteminin versiyası
6.01 şəkil versiyası
6.01 alt sistem versiyası
Şəklin ölçüsü D4000
800 başlıq ölçüsü
D5597 yoxlama məbləği
00040000 yığın ehtiyatının ölçüsü
00001000 yığının ölçüsü
00100000 yığın ehtiyatının ölçüsü
00001000 yığının ölçüsü
140 DLL xüsusiyyətləri
Dinamik baza
NX uyğun
İxrac Direktorluğunun B4DA8 [ A915] ünvanı
İdxal kataloqunun BF6C0 [ 1F4] ünvanı
Resource Directory C7000 [520] ünvanı
0 [ 0] İstisna kataloqunun ünvanı
0 [ 0] Təhlükəsizlik Kataloqunun ünvanı
C8000 [B098] Əsas Köçürmə Direktorluğunun ünvanı
C5460 [ 38] Debug Directory ünvanı
0 [ 0] Təsvir kataloqunun ünvanı
0 [ 0] Xüsusi Kataloqun ünvanı
Thread Storage Directory 0 [ 0] ünvanı
816B8 [ 40] Load Configuration Directory ünvanı
Bağlı İdxal kataloqunun 278 [408] ünvanı
İdxal Ünvanı Cədvəl Kataloqunun 1000 [DE8] ünvanı
0 [ 0] Gecikmə İdxal kataloqunun ünvanı
0 [ 0] COR20 Başlıq Kataloqunun ünvanı
0 [ 0] Reserved Directory ünvanı

BÖLMƏ BAŞLIĞI №1
.mətn adı
C44C1 virtual ölçüsü
1000 virtual ünvan
C4600 xam məlumat ölçüsü
Xam məlumatlara 800 fayl göstəricisi

0 yerdəyişmə sayı
0 sətir nömrələri
60000020 bayraq
Kod
(hizalanma göstərilməyib)
Oxumağı icra edin

Sazlama kataloqları(2)
Tip Ölçü Ünvan Göstəricisi
cv 25 c549c c4c9c Format: RSDS, bələdçi, 2, kernel32.pdb
(10) 4 c5498 c4c98

BÖLMƏ BAŞLIĞI №2
.data adı
FEC virtual ölçüsü
C6000 virtual ünvan
E00 xam verilənlərin ölçüsü
Xam məlumat üçün C4E00 fayl göstəricisi
0 fayl göstəricisi yerdəyişmə cədvəlinə
0 fayl göstəricisi sətir nömrələrinə
0 yerdəyişmə sayı
0 sətir nömrələri
C0000040 bayraqları
Başlanğıc Məlumat
(hizalanma göstərilməyib)
Oxu Yaz

BÖLMƏ BAŞLIĞI №3
.rsrc adı
520 virtual ölçü
C7000 virtual ünvan
600 ölçülü xam məlumat
Xam məlumat üçün C5C00 fayl göstəricisi
0 fayl göstəricisi yerdəyişmə cədvəlinə
0 fayl göstəricisi sətir nömrələrinə
0 yerdəyişmə sayı
0 sətir nömrələri
40000040 bayraq
Başlanğıc Məlumat
(hizalanma göstərilməyib)
Yalnız Oxu

BÖLMƏ BAŞLIĞI №4
.reloc adı
B098 virtual ölçü
C8000 virtual ünvan
B200 xam məlumat ölçüsü
Xam məlumat üçün C6200 fayl göstəricisi
0 fayl göstəricisi yerdəyişmə cədvəlinə
0 fayl göstəricisi sətir nömrələrinə
0 yerdəyişmə sayı
0 sətir nömrələri
42000040 bayraq
Başlanğıc Məlumat
Atılabilir
(hizalanma göstərilməyib)
Yalnız Oxu

Mesajlar və İstisnalar

Prosesə qoşulduqdan sonra əvvəlcə modulların siyahısı göstərilir, sonra isə digər mesajlar görünə bilər. Məsələn, biz calc.exe-yə qoşulduqda WinDBG avtomatik olaraq kəsilmə nöqtəsini təyin edir (bu, sadəcə tətbiqi dayandırmaq üçün istifadə olunan markerdir). Ekranda kəsilmə nöqtəsi haqqında məlumat göstərilir:

(da8.b44): İstisna təlimatı - kod 80000003 (ilk şans)

Bu xüsusi mesaj bir istisnadır, yəni ilk şans istisnasıdır. Əslində, istisna proqramın icrası zamanı baş verən xüsusi şərtdir. İlk şans istisnası o deməkdir ki, proqram istisna baş verdikdən dərhal sonra dayanıb. İkinci şans istisnası o deməkdir ki, istisna baş verdikdən sonra bəzi əməliyyatlar yerinə yetiriləcək və sonra proqram fəaliyyətini dayandıracaq.

Qeydiyyatlar

Mesajları və istisnaları göstərdikdən sonra sazlayıcı prosessor registrlərinin vəziyyətini göstərir. Registrlər prosessor daxilində kiçik informasiya hissələrini saxlayan və ya yaddaşda nəyinsə vəziyyətinə nəzarət edən xüsusi dəyişənlərdir. Prosessor bu registrlərdəki məlumatları çox tez emal edə bilir. Bu, hər dəfə RAM-dan avtobus vasitəsilə məlumat almaqdan daha sürətlidir.

calc.exe-yə qoşulduqdan sonra WinDBG avtomatik olaraq aşağıdakı registrlər haqqında məlumatları göstərir:

eax=7ffd9000 ebx=00000000 ecx=00000000 edx=776cd23d esi=00000000 edi=00000000
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

Daha sonra r əmrindən istifadə edərək bu məlumatı təkrar edə bilərsiniz:

0:005>r
eax=7ffd9000 ebx=00000000 ecx=00000000 edx=776cd23d esi=00000000 edi=00000000
eip=77663540 esp=02affd9c ebp=02affdc8 iopl=0 nv yuxarı ei pl zr na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246
ntdll!DbgBreakPoint:
77663540 cc int 3

Müəyyən bir reyestrin dəyərini əldə etmək istəyiriksə, aşağıdakı əmri işlədə bilərik:

0:005> r eks
eax=7ffd9000

Məlumat eyni vaxtda bir neçə registrdən aşağıdakı kimi əldə edilə bilər:

0:005> r eax,ebp
eax=7ffd9000 ebp=02affdc8

Təlimat üçün göstərici

Son əmr işlətmək üçün təlimatlar haqqındadır. Burada həmçinin r əmrində olduğu kimi, EIP registrinin ehtiva etdiyi məlumatlar da ekranda göstərilir. EIP prosessor tərəfindən yerinə yetiriləcək növbəti təlimatın yerini ehtiva edən registrdir. WinDBG göstərdiyi şey u eip L1 əmrinin ekvivalentidir, bundan sonra WinDBG EIP registrində göstərilən ünvana gedir, bu bölməni montaj koduna çevirir və onu ekranda göstərir.

ntdll!DbgBreakPoint:
77663540 cc int 3

əlaqədə qal

Gələcək məqalələrdə WinDBG-dən sahədə necə istifadə edəcəyimizi nəzərdən keçirəcəyik: kəsilmə nöqtələri, addım-addım sazlama və yaddaşa baxış. Dəyişməyin! J.

Windows üçün sazlama alətləri- Əməliyyat kodunu sazlama vasitələri Windows sistemləri. Onlar istifadəçi rejimi və nüvə rejimi kodunu sazlamaq üçün nəzərdə tutulmuş Microsoft-dan sərbəst paylanmış proqramlar toplusudur: proqramlar, sürücülər, xidmətlər, nüvə modulları. Alətlər dəstinə konsol və GUI rejimində sazlayıcılar, simvollarla işləmək üçün proqramlar, fayllar, proseslər və uzaqdan sazlama üçün utilitlər daxildir. Alətlər dəsti müxtəlif sistem komponentlərində nasazlıqların səbəblərini tapmaq üçün istifadə edilə bilən yardım proqramlarını ehtiva edir. Windows üçün sazlama alətləri müəyyən bir nöqtədən etibarən müstəqil paylama şəklində yükləmək mümkün deyil və Windows SDK-nın (Windows Proqram İnkişafı Kiti) bir hissəsidir. Instrumental dəsti Windows alətləri SDK, öz növbəsində, MSDN abunə proqramının bir hissəsi kimi mövcuddur və ya msdn.microsoft.com saytından ayrıca paylama kimi sərbəst yüklənə bilər. Tərtibatçıların fikrincə, ən son və ən çox cari versiya Windows üçün Sazlama Alətləri xüsusi olaraq Windows SDK-da var.

Windows üçün Sazlama Alətləri tez-tez yenilənir və ictimaiyyətə təqdim olunur və bu proses heç bir şəkildə əməliyyat sistemlərinin buraxılışından asılı deyil. Buna görə də, vaxtaşırı yeni versiyaları yoxlayın.

İndi görək, xüsusən, Sazlama Alətləri nə üçün Microsoft Windows:

  • Yerli proqramlar, xidmətlər, drayverlər və ləpələri ayıklamaq;
  • Şəbəkə üzərindən uzaq proqramlar, xidmətlər, drayverlər və ləpələri sazlamaq;
  • Real vaxt rejimində işləyən proqramları düzəldin;
  • Proqramların, nüvənin və bütövlükdə sistemin yaddaş boşaltma fayllarını təhlil etmək;
  • x86/x64/Itanium arxitekturasına əsaslanan sistemlərlə işləmək;
  • İstifadəçi rejimi və ləpə rejimi proqramlarında debug;

Windows üçün Debugging Tools-un aşağıdakı versiyaları mövcuddur: 32-bit x86, Intel Itanium, 64-bit x64. Onlardan ikisinə ehtiyacımız olacaq: x86 və ya x64.

Windows üçün Sazlama Alətlərini quraşdırmağın bir neçə yolu var, bu yazıda yalnız əsaslarını nəzərdən keçirəcəyik:

  • Veb quraşdırıcı vasitəsilə quraşdırma.
  • ISO-dan Windows üçün Sazlama Alətlərinin quraşdırılması Windows şəkli SDK.
  • Windows üçün Sazlama Alətlərinin birbaşa dbg_amd64.msi / dbg_x86.msi paketlərindən quraşdırılması.

Hansı nöqtədə qeyri-müəyyən olaraq qalır, niyə mən öz kompüterimdə sazlama alətlərini quraşdırmalıyam? Tez-tez iş mühitinə müdaxilənin son dərəcə arzuolunmaz olduğu bir vəziyyətlə qarşılaşırsınız! Və daha çox, yeni bir məhsulun quraşdırılması, yəni reyestr/sistem fayllarında dəyişikliklərin edilməsi tamamilə qəbuledilməz ola bilər. Nümunələrə missiya baxımından kritik serverlər daxildir. Nə üçün tərtibatçılar quraşdırma tələb etməyən tətbiqlərin portativ versiyaları variantını nəzərdən keçirmirlər?
Versiyadan versiyaya, Windows üçün Debugging Tools paketinin quraşdırılması prosesi bəzi dəyişikliklərə məruz qalır. İndi birbaşa quraşdırma prosesinə keçək və alətlər dəstini quraşdıra biləcəyiniz yollara baxaq.

Veb quraşdırıcıdan istifadə edərək Windows üçün Sazlama Alətlərinin quraşdırılması

Windows SDK Arxivi səhifəsinə keçin və “Windows 10 SDK (10586) və Windows 10 Mobile (Microsoft) (versiya 10586.11) ilə cihaz emulyatoru” maddəsinin altında və Windows 10 adlı bölməni tapın.

Elementə klikləyin SDK QURAŞDIRMAQ. Kliklədikdən sonra Windows SDK-nın onlayn quraşdırılması prosesini başlatan sdksetup.exe faylını yükləyin və işə salın. İlkin mərhələdə quraşdırıcı .NET Framework paketinin sistemdə quraşdırılıb-quraşdırılmadığını yoxlayacaq son versiya(V Bu an bu 4.5). Paket yoxdursa, quraşdırma təklif olunacaq və stansiya tamamlandıqdan sonra yenidən işə düşəcək. Yenidən başladıqdan dərhal sonra istifadəçinin icazəsi mərhələsində Windows SDK-nın quraşdırılması prosesi başlayır.

Çox vaxt paketin bütün komponentlərini istisnasız seçərkən quraşdırma prosesində səhvlər baş verə bilər. Bu halda, komponentləri seçici şəkildə quraşdırmaq tövsiyə olunur, minimum tələb olunan dəsti.

Windows üçün Hata Ayıklama Alətlərinin quraşdırılması tamamlandıqdan sonra, ayıklama fayllarının yeri nə zaman bu üsul Quraşdırmamız aşağıdakı kimi olacaq:

  • 64-bit versiyalar: C:\Proqram Faylları (x86)\Windows Kitləri\x.x\Debuggers\x64
  • 32-bit versiyalar: C:\Proqram Faylları (x86)\Windows Kitləri\x.x\Debuggers\x86

* burada x.x inkişaf dəstinin xüsusi versiyasıdır;
8 və daha yüksək versiyalarda quraşdırma yollarının hər kəs üçün klassik olanlardan nəzərəçarpacaq dərəcədə fərqli olduğunu gördük əvvəlki versiyalar Sazlama alətləri?

Böyük bir artı bu üsul Windows üçün Sazlama Alətlərinin quraşdırılması bir anda bütün arxitekturalar üçün sazlama vasitələrinin versiyalarının quraşdırılmasını nəzərdə tutur.

Windows SDK ISO-dan Windows üçün Sazlama Alətlərinin quraşdırılması

Bu üsul tam Windows SDK (Software Developers Kit) quraşdırma təsvirindən istifadə edərək Windows üçün Sazlama Alətlərinin quraşdırılmasını əhatə edir. Müəyyən vaxta qədər yükləyin ISO şəkli müvafiq sistem üçün Windows SDK Arxiv səhifəsində mümkün idi. Bununla belə, hazırda sdksetup.exe veb quraşdırıcısını işə salaraq və seçərək SDK-nın ISO şəklini əldə edə bilərsiniz. Windows Software Development Kit-i yükləyin quraşdırıcının başlanğıc pəncərəsində:

Bildiyimiz kimi, veb quraşdırıcıdan istifadə edərək əvvəlki quraşdırma metodu olduqca şıltaqdır və tez-tez səhvlə başa çatır. Təmiz sistemlərdə problemsiz quraşdırılır, lakin kifayət qədər yüklənmiş sistemlərdə çoxsaylı problemlər yaranır. Əgər bu sizin vəziyyətinizdədirsə, bu üsuldan istifadə edin.

Müvafiq olaraq, səhifədə tələb olunan paylamanı seçməlisiniz, mənim üçün (və məncə çoxları üçün) hazırda bu “Windows 7 və .NET Framework 4 üçün Windows SDK”dır və sadəcə aşağıda “ISO əldə edin” linkinə klikləyin. DVD şəkli”.

msdn.microsoft.com saytı ilə işləyərkən brauzerdən istifadə etməyi məsləhət görürəm internet Explorer, çünki rəqabət aparan məhsulların işləməməsi halları var!

Buna görə də, yalnız zərurətə görə seçim etmək lazımdır. Tipik olaraq, Windows üçün Sazlama Alətlərinin bitliyi sistemin bitliyi ilə üst-üstə düşür. Sistemlərim əsasən 64-bitdir, buna görə də əksər hallarda 64-bitlik sistem GRMSDKX_EN_DVD.iso üçün şəkli yükləyirəm.
Sonra, şəkli yüklədikdən sonra, mövcud ISO görüntüsü ilə bir şəkildə işləməliyik. Ənənəvi üsul, əlbəttə ki, CD yazmaqdır, lakin bu, kifayət qədər uzun və bəzən bahalı bir üsuldur. Sistemdə virtual disk qurğuları yaratmaq üçün pulsuz yardım proqramlarından istifadə etməyi təklif edirəm. Şəxsən mən bu məqsədlə DEAMON Tools Lite proqramından istifadə etməyi üstün tuturam. Kiminsə zövqündən və rəngindən asılı olaraq başqa üstünlükləri ola bilər, necə deyərlər .. DAEMON Tools Lite quraşdırdıqdan sonra GRMSDKX_EN_DVD.iso şəkil faylına sadəcə iki dəfə klik edirəm və sistemdə yeni virtual görünür. CD:

Sonra, iki dəfə klikləməklə, avtomatik yükləməni aktivləşdirirəm və Windows SDK quraşdırmasına başlayıram:

Siyahıdan quraşdırmaq üçün komponentləri seçmək vaxtı gəldikdə, ekran görüntüsündə qeyd olunanlar istisna olmaqla, bütün seçimləri tamamilə söndürürük. Bu, bizə indi lazımsız səhvlərdən qaçmağa kömək edəcək.


Hər şey tam olaraq belədir, ekran görüntüsündə qeyd olunan iki seçim var: "Windows Performans Alətlər dəsti" və "Windows üçün Sazlama Alətləri". Hər ikisini seçin, çünki Windows Performans Alətlər dəsti işinizdə mütləq faydalı olacaq! Sonra "Növbəti" düyməsini basdıqdan sonra quraşdırma həmişəki kimi davam edir. Və sonunda "Quraşdırma tamamlandı" yazısını görəcəksiniz.
Quraşdırma başa çatdıqdan sonra Windows üçün Debugging Tools paketinin işçi qovluqları aşağıdakı kimi olacaq:

  • x86 versiyası üçün:
  • x64 versiyası üçün:

Bu nöqtədə Windows üçün Sazlama Alətlərinin quraşdırılması başa çatmış hesab edilə bilər.

.msi faylı vasitəsilə Windows üçün Sazlama Alətlərinin quraşdırılması

Əvvəlki iki üsuldan istifadə edərək Windows üçün Sazlama Alətlərini quraşdırarkən problemlər yaranarsa, bizdə hələ də ehtiyatda olan, ən etibarlı və zamanla sınaqdan keçirilmiş, xilasetmə işinə gələn, belə desək, bir dəfədən çox var. Bir vaxtlar, Windows SDK-ya inteqrasiya olunmazdan əvvəl, Windows üçün Debugging Tools, hələ də tapıla bilən, lakin artıq Windows SDK paylanmasının bağırsaqlarında olan ayrıca installer.msi kimi mövcud idi. Artıq əlimizdə Windows SDK-nın ISO təsviri olduğundan, onu sistemə quraşdıra bilmərik, sadəcə olaraq artıq tanınmış WinRAR arxivatorundan və ya ISO disklərinin məzmunu ilə işləyən hər hansı digər məhsuldan istifadə edərək onu aça bilərik.

Şəkli açdıqdan sonra kökdə yerləşən “Setup” qovluğuna getməliyik və sonra qovluqlardan birini seçməliyik:

  • 64-bit versiyasını quraşdırmaq üçün: \Setup\WinSDKDebuggingTools_amd64 və dbg_amd64.msi faylını bu qovluqdan çıxarın.
  • 32-bit versiyasını quraşdırmaq üçün: \Setup\WinSDKDebuggingTools və dbg_x86.msi faylını bu qovluqdan çıxarın.

Quraşdırma başa çatdıqdan sonra Windows üçün Debugging Tools paketinin işçi qovluqları aşağıdakı kimi olacaq:

  • x86 versiyası üçün: C:\Proqram Faylları (x86)\Windows üçün Debugging Tools (x86)
  • x64 versiyası üçün: Windows üçün C:\Program Files\Debugging Tools (x64)

Bu nöqtədə Windows üçün Sazlama Alətlərinin quraşdırılması başa çatmış hesab edilə bilər.

əlavə informasiya

Bunun nə ilə əlaqəli olduğunu bilmirəm, bəlkə də diqqətsizliyimə görə, lakin Windows üçün Debugging Tools-u quraşdırdıqdan sonra quraşdırıcı sistem yolu dəyişən Path-da sazlayıcı ilə qovluğa gedən yolu təyin etmir. Bu, birbaşa konsoldan müxtəlif sazlama tapşırıqlarının işə salınmasına müəyyən məhdudiyyətlər qoyur. Buna görə də, yol yoxdursa, pəncərədə müstəqil olaraq yazıram Ətraf Mühit Dəyişənləri sazlama alətlərinə gedən yol:

  • C:\Proqram Faylları (x86)\Windows Kitləri\10\Debuggers\x86
  • C:\Proqram Faylları (x86)\Windows Kitləri\10\Debuggers\x64

* Sizin vəziyyətinizdə, yollar həm fərqli bit ölçüsündə ƏS-nin istifadəsi, həm də fərqli SDK versiyasının istifadəsi səbəbindən fərqli ola bilər.

Windows üçün Debugging Tools paketinin utilitləri portativ proqramlar kimi işləyə bilər, sadəcə olaraq qovluğu iş sistemindən kopyalamalısınız. Microsoft Windows Performans Alətlər dəsti və istehsal serverində portativ versiya kimi istifadə edin. Ancaq sistemin tutumunu nəzərə almağı unutmayın!! Paketin kritik bir sistemdə tam quraşdırılmasını tamamlasanız belə, quraşdırmadan dərhal sonra işə başlaya bilərsiniz, yenidən yükləmə tələb olunmur.

Windows üçün Sazlama Alətlərinin Tərkibi

İndi, nəhayət, Windows üçün Debugging Tools tərkibi:

Fayl Məqsəd
adplus.doc ADPlus yardım proqramı üçün sənədlər.
adplus.exe Bir və ya bir neçə proses üçün zibillər və log faylları yaratmaq üçün cdb sazlayıcısının işini avtomatlaşdıran konsol proqramı.
agestore.exe Simvol serveri və ya mənbə serveri tərəfindən istifadə edilən yaddaşdan köhnəlmiş faylları silmək üçün yardım proqramı.
breakin.exe CTRL+C düymələrini basmağa bənzər, proseslərə fərdi fasilə kombinasiyası göndərməyə imkan verən yardım proqramı.
cdb.exe İstifadəçi rejimi konsolu sazlayıcı.
convertstore.exe Simvolları 2 səviyyəlidən 3 səviyyəliyə çevirmək üçün köməkçi proqram.
dbengprx.exe Uzaqdan sazlama üçün təkrarlayıcı (proksi server).
dbgrpc.exe RPC zəng statusu məlumatını göstərmək üçün yardım proqramı.
dbgsrv.exe Uzaqdan sazlama üçün istifadə edilən server prosesi.
dbh.exe Simvol faylının məzmunu haqqında məlumatı göstərmək üçün köməkçi proqram.
dumpchk.exe Dump yoxlama yardım proqramı. Dump faylını tez yoxlamaq üçün yardım proqramı.
dumpexam.exe Yaddaş boşluğunu təhlil etmək üçün bir yardım proqramı. Nəticə %SystemRoot%\MEMORY.TXT faylına çıxarılır.
gflags.exe Qlobal sistem bayraqlarının redaktoru. Utilit qeyd defteri açarlarını və digər parametrləri idarə edir.
i386kd.exe Kd üçün sarğı. Bir vaxtlar x86 maşınları üçün Windows NT/2000-ə əsaslanan sistemlər üçün kd belə adlanırdı? Yəqin ki, uyğunluq səbəbi ilə ayrılıb.
ia64kd.exe Kd üçün sarğı. Bir vaxtlar ia64 maşınları üçün Windows NT/2000-ə əsaslanan sistemlər üçün kd adlanırdı? Yəqin ki, uyğunluq səbəbi ilə ayrılıb.
kd.exe Kernel rejimi konsolu sazlayıcı.
kdbgctrl.exe Kernel sazlama idarəetmə aləti. Kernel ayıklama bağlantısını idarə etmək və konfiqurasiya etmək üçün bir yardım proqramı.
kdsrv.exe KD üçün əlaqə serveri. Utilit, uzaqdan bağlantılar üçün işləyən və gözləyən kiçik bir proqramdır. kd müştəri üzərində işləyir və uzaqdan sazlama üçün bu serverə qoşulur. Həm server, həm də müştəri eyni Sazlama Alətləri montajından olmalıdır.
kill.exe Prosesləri bitirmək üçün köməkçi proqram.
list.exe Faylın məzmununu ekranda göstərmək üçün köməkçi proqram. Bu miniatür yardım proqramı bir məqsədlə daxil edilmişdir - böyük mətn və ya log fayllarına baxmaq. Mətni hissə-hissə yüklədiyi üçün yaddaşda az yer tutur.
logger.exe Yalnız bir proseslə işləyə bilən miniatür sazlayıcı. Utilit logexts.dll faylını bütün funksiya çağırışlarını və öyrənilən proqramın digər hərəkətlərini qeyd edən proses sahəsinə yeridir.
logviewer.exe Logger.exe debugger tərəfindən qeydə alınmış qeydlərə baxmaq üçün yardım proqramı.
ntsd.exe Microsoft NT Simvolik Debugger (NTSD). Başladıqda mətn pəncərəsi yaratması istisna olmaqla, cdb ilə eyni olan sazlayıcı. CDb kimi, ntsd həm konsol proqramlarını, həm də qrafik proqramları düzəltməyə qadirdir.
pdbcopy.exe Simvol faylından şəxsi simvolları silmək, simvol faylına daxil edilmiş ictimai simvolları idarə etmək üçün köməkçi proqram.
remote.exe KD, CDB və NTSD-nin hər hansı bir konsol sazlayıcısının uzaqdan sazlanması və uzaqdan idarə edilməsi üçün yardım proqramı. Bütün bu konsol sazlayıcılarını uzaqdan işə salmağa imkan verir.
rtlist.exe Uzaqdan tapşırıq görüntüləyicisi. Utilit, DbgSrv server prosesi vasitəsilə işləyən proseslərin siyahısını göstərmək üçün istifadə olunur.
symchk.exe Microsoft simvol serverindən simvolları yükləmək və yerli simvol keşini yaratmaq üçün köməkçi proqram.
symstore.exe Şəbəkə və ya yerli simvol yaddaşı yaratmaq üçün yardımçı proqram (2 səviyyəli/3 səviyyəli). Simvol saxlama diskdə xüsusi bir qovluqdur, müəyyən bir quruluşa uyğun olaraq qurulur və simvolları ehtiva edir. Simvolların kök kataloqunda adları komponentlərin adları ilə eyni olan alt qovluqların strukturu yaradılır. Öz növbəsində, bu alt qovluqların hər birində ikili faylların hashing yolu ilə əldə edilmiş xüsusi adları olan iç-içə alt qovluqlar var. Symstore yardım proqramı komponent qovluqlarını skan edir və simvol anbarına yeni komponentlər əlavə edir, burada istənilən müştəri onları əldə edə bilər. Bildirilir ki, symstore 0 səviyyəli yaddaşdan simvolları qəbul etmək və onları 2 səviyyəli/3 səviyyəli yaddaşa yerləşdirmək üçün istifadə olunur.
tlist.exe Tapşırıq izləyicisi. Bütün çalışan proseslərin siyahısını göstərmək üçün bir yardım proqramı.
umdh.exe İstifadəçi rejimli dump yığın yardım proqramı. Seçilmiş prosesin yığınlarını təhlil etmək üçün bir yardım proqramı. Yığın üçün müxtəlif parametrləri göstərməyə imkan verir.
usbview.exe USB Viewer. Kompüterə qoşulmuş USB cihazlarına baxmaq üçün köməkçi proqram.
vmdemux.exe Virtual maşın demultiplekseri. Bir COM bağlantısı üçün bir neçə adlandırılmış boru yaradır. Kanallar müxtəlif virtual maşın komponentlərini sazlamaq üçün istifadə olunur
windbg.exe GUI ilə istifadəçi rejimi və nüvə rejimi sazlayıcısı.

Səbəbləri müəyyən etmək mavi ekranlar(BSOD) yaddaş boşaltma təhlili tələb olunur. Əksər hallarda kritik səhvlər zamanı sistem tərəfindən yaradılan minidump kifayətdir.
Bu məqalə daxildir addım-addım təlimat WinDBG-nin quraşdırılması və konfiqurasiyası haqqında - BSOD-un əsl səbəbini müəyyən etməyə imkan verən güclü ayıklama vasitəsi.

Addım 1 - Kiçik Yaddaş Dumplarının Konfiqurasiyası

Addım 2 - WinDBG-nin quraşdırılması

Yaddaş zibillərini təhlil etmək üçün Windows SDK-ya daxil olan WinDBG sazlayıcısını quraşdırmalısınız. Yazı zamanı ən son mövcuddur Windows versiyaları SDK:

  • Windows 10 SDK (şəbəkə quraşdırıcısını yükləmək)
  • Windows 8.1 SDK (şəbəkə quraşdırıcısını yükləmək)

Addım 3 - .dmp fayllarının WinDBG-yə uyğunlaşdırılması

Yaddaş zibillərinin oxunmasını və təhlilini asanlaşdırmaq üçün .dmp fayllarını WinDBG-yə köçürün. Bu, Explorer-dən dump fayllarını ilk işə salmadan birbaşa WinDBG-də açmağa imkan verəcək.


Addım 4 — Sazlama simvol fayllarını qəbul etmək üçün simvol serverinin qurulması


WinDBG-nin quraşdırılması və ilkin konfiqurasiyası tamamlandı. Görünüşünü dəyişdirmək üçün menyuya keçə bilərsiniz Baxın- şrift parametrlərini seçməklə tapa bilərsiniz Şrift, və konsol pəncərəsi parametrləri Seçimlər.




Üst