Yaddaş zibillərini təhlil etmək üçün WinDBG-nin quraşdırılması və konfiqurasiyası. Windows üçün Sazlama Alətlərini quraşdırın Sisteminizi konfiqurasiya edin

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. Əgər siz 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 -> Debugging bölməsində tapa bilərsiniz üçün alətlər Windows -> Windbg

WinDBG-yə giriş - 1-ci hissə

Aleksandr Antipov

WinDBG əla sazlayıcıdır. Ola bilsin ki, o, çox istifadəçi dostu interfeysə və standart olaraq qara fona malik deyil, lakin o, hazırda Windows-da ən güclü və sabit sazlayıcılardan biridir. Bu yazıda mən sizə WinDBG-nin əsasları ilə tanış olacağam ki, onunla başlayasınız.


WinDBG əla sazlayıcıdır. Ola bilsin ki, o, çox istifadəçi dostu interfeysə və standart olaraq qara fona malik deyil, lakin o, hazırda Windows-da ən güclü və sabit sazlayıcılardan biridir. Bu yazıda mən sizə WinDBG-nin əsasları ilə tanış olacağam ki, onunla başlayasınız.

Bu, WinDBG haqqında 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 sazlanması, məsləhətlər və fəndlər.

Bu yazıda biz prosesin quraşdırılmasına və qoşulmasına baxacağıq, sonrakı məqalələrdə isə kəsilmə nöqtələri, keçid və yaddaş yoxlamasını əhatə edəcəyik.

WinDBG quraşdırılması

Windows 7 ilə müqayisədə WinDBG-nin Windows 8-də quraşdırılması prosesi keçib kiçik dəyişikliklər. 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ı, WinDBG-ni yerli olaraq quraşdırmaq və ya başqa bir maşın üçü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ı, bu paketi gələcəkdə digər sistemlərə quraşdırmaq istəyirsinizsə, bu çox əlverişlidir.

Şə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 başa vurduqdan sonra paketin yükləndiyi qovluğa gedin (default 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 Sazlama Alətləri" paketinin bir hissəsidir. Sizdən quraşdırıcını yükləməlisiniz, sonra quraşdırma prosesi zamanı "Windows üçün Sazlama Alətləri" seçin.

Quraşdırma zamanı mən sonrakı 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 başa çatdı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-nin görünüşü

İlk görən kimi 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 prosesi sazlama zamanı öyrənilir. İnterfeysi təsvir etmək üçün vaxt itirmə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ə: əmrlərin 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 çıxarkən düzgün işləyir. Ancaq dəyişdirilməli olan vacib bir şey simvollardır. Simvollar proqramın tərtibi zamanı 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ı sizə sazlama və ya sökmə zamanı tətbiqin funksionallığını araşdırmağ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 sazlama məlumatı olan fayllar proqramla birlikdə yığılır. Əksər hallarda şirkətlər bu cür məlumatlara çıxışı məhdudlaşdırırlar.

WinDBG-ni konfiqurasiya etmək üçün Microsoft istifadəsi Symbol Server 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ə ki, ulduzların ayırıcı kimi istifadə edilməsi bir qədər qəribədir. Microsoft Simvol Serverini qurduqdan sonra simvollar C:\Symbols qovluğuna endiriləcək.

Şəkil 6: Microsoft quraşdırma Simvol Server

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

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 ilə 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 apara bilər və siz Debug:Break-ə keçməklə bu 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 prosesə əlavə edin.
  2. WinDBG vasitəsilə prosesi başladın.

Hər bir metodun öz üstünlükləri və mənfi cəhətləri var. Deyək ki, proqramı WinDBG vasitəsilə işlədirsinizsə, o zaman tətbiqin çökməsinə səbəb ola biləcək bəzi xüsusi sazlama seçimləriniz (məsələn, yığın sazlama) 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ə bir sazlayıcının varlığını yoxlayır və müvafiq olaraq, bu halda artıq işləyən bir prosesə yapışmağın mənası var. Bəzən başlanğıc zamanı bəzi parametrləri təyin edən Windows xidmətinin sazlanması olur, buna görə də sazlama prosesini sadələşdirmək üçün xidməti sazlayıcı vasitəsilə başlamaqdansa, 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!

Bir prosesə başlamaq

Əgər siz yerli olaraq işləyən və şəbəkəyə qoşulmayan müstəqil tətbiqi sazlayı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 əlverişli yolu seçin.

Prosesə başlamaq çətin deyil. "Fayl: İcra edilə biləni Aç" bölməsinə gedin və sazlamaq istədiyiniz icraedici faylı seçin. Siz həmçinin arqumentlər təqdim edə və ya başlanğıc qovluğunu təyin edə bilərsiniz:

Şəkil 9: Sazlama üçün icra olunan faylın seçilməsi

Proses bağlantısı

Artıq işləyən prosesə qoşulmaq da çətin deyil. Bununla belə, nəzərə alı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 prosesə deyil, tab ilə ə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 PID və ya proses 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ırıbsa, müvafiq xananı işarələyərək "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 debugger ilə həll etmək daha rahat olardı virtual maşın və ya RDP. Və ya ola bilsin ki, siz LoginUI.exe prosesini düzəldirsiniz, bu, yalnız sistem kilidli olduqda mövcuddur. 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ək üçün ən çox yayılmış iki üsul var.

Mövcud sazlama sessiyaları

Əgər siz artıq proqramı yerli olaraq sazlamağa başlamısınızsa (WinDBG vasitəsilə prosesi əlavə etməklə və ya işə salmaqla), siz xüsusi bir əmr daxil edə bilərsiniz və WinDBG uzaqdan sazlayıcının qoşula biləcəyi "dinləyici" (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ı

Sonra WinDBG 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ə belə bir şey daxil etməklə uzaq hostdan artıq mövcud sazlama sessiyasına qoşula bilərsiniz: tcp:Port=5005,Server=192.168.127.138

Şəkil 12: Uzaqdan əlaqə sazlama sessiyasına

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 server yaradın

Siz həmçinin ayrıca WinDBG 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ı

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

Şəkil 14: Debuq serverinin işə salınması zamanı görünə biləcək təhlükəsizlik mesajı

Siz "Fayl: Uzaqdan Köpüklə Əlaqə" faylına keçib mətn sahəsinə aşağıdakı sətri daxil etsəniz, 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ğunuza dair heç bir siqnal qəbul etməyəcəksiniz, lakin "Fayl: Prosesə əlavə et" bölməsinə keçsəniz, sazlama server proseslərinin (dbgsrv.exe-nin işlədiyi yerdə) siyahısını görəcəksiniz. İ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şı, qəbul etməyi bacarmalısınız fon məlumatı hər hansı bir komanda haqqında. WinDBG yardımına daxil olmaq üçün .hh əmrindən istifadə edin:

Siz də kömək ala bilərsiniz konkret komanda. Məsələn, .reload əmri ilə bağlı yardım almaq üçün aşağıdakı əmrdən istifadə edin:

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

Və ya sadəcə "Kömək: Məzmun" bölməsinə keçin.

Modullar

Proqram işləyərkən tətbiqin funksionallığını təmin edən müxtəlif modullar idxal olunur. Buna görə də, hansı modulların bir proqram 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ın özü deyil, proqram tərəfindən yüklənmiş xüsusi modulu düzəldəcəksiniz.

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ə siz lmf əmri ilə 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 777ba000LPK 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 ölçüsü kodu
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ı
D4000 ölçülü şəkil
800 ölçülü başlıqlar
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ı
278 [408] Bağlı İdxal kataloqunun ü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şlatılmış məlumatlar
(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şlatılmış məlumatlar
(hizalanma göstərilməyib)
Yalnız Oxu

BÖLMƏ BAŞLIĞI №4
.relocname
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şlatılmış məlumatlar
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 dayandırılıb. İkinci şans istisnası o deməkdir ki, istisna baş verdikdən sonra bəzi əməliyyatlar yerinə yetiriləcək və sonra proqram öz işini dayandıracaq.

Qeydiyyatlar

Mesajları və istisnaları göstərdikdən sonra sazlayıcı prosessor registrlərinin vəziyyətini çıxarır. Registrlər kiçik informasiya hissələrini saxlayan və ya yaddaşda bir şeyin vəziyyətini izləyən prosessor daxilində 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 haqqında 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ı yenidən təkrarlaya 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 registrin dəyərini əldə etmək istəyiriksə, aşağıdakı əmri yerinə yetirə 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

Sonuncu əmr icra təlimatları haqqındadır. Burada r əmrində olduğu kimi EIP registrini ehtiva edən məlumatlar da göstərilir. EIP yeri ehtiva edən reyestrdir növbəti təlimat prosessor tərəfindən yerinə yetirilməlidir. WinDBG-nin 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

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

Bu cür nasazlıqlar adətən müəyyən etmək çətin ola bilən uğursuz sürücü ilə əlaqələndirilir. Bununla belə, təkmilləşdirilmiş səhv izləmə sistemi Windows Vista(və təkcə Vista-da deyil!) sizi tez-tez problemli fayla apara bilər. Nəticədə, insanların çoxu qeyri-sabit bir kompüterdə işləməyə cəhd etməyi dayandırır, sənədləri paranoid qanunauyğunluqla saxlayır və ən yaxşısına ümid edir.

Windows qəzası zamanı adətən "yaddaş zibilliyi" yaradılır. Sonuncu pulsuz debug aləti ilə araşdırıla bilər. Windows aləti Problemin mənbəyini göstərə bilən sazlama alətləri. Beləliklə, sizə lazım olan hər şey:

Özünüzə sazlama aləti yükləyin

Siz Windows Sazlama Alətlərini birbaşa Microsoft veb saytından yükləyə bilərsiniz. Proqram Windows NT 4-dən başlayaraq Windows 2008-ə qədər bir çox əməliyyat sistemləri ilə işləyir, ona görə də onunla heç bir problem yaşamamalısınız. Bəli, Windows 7 RC altında sabit olduğunu söyləmək olmaz, lakin testlərimizə görə hələ də işləyir. Buna görə də, hətta Windows 7 RC-dən bir problemi diaqnoz etmək cəhdi də uğurlu ola bilər.

Sisteminizi konfiqurasiya edin

Qəzalar zamanı kompüteriniz daha sonra sazlayıcı üçün məlumat mənbəyi kimi xidmət edəcək yaddaş zibilləri yaratmalıdır. Buna görə də, Windows-un zibil yaratmaq üçün konfiqurasiya edilməsi vacibdir. Əməliyyat sisteminizi fərdiləşdirmək üçün klikləyin sağ basın Kompüterinizin üzərinə siçan vurun və Xüsusiyyətlər seçin. Sonra Qabaqcıl Sistem Parametrləri sekmesine klikləyin, orada Başlanğıc və Bərpa Parametrləri alt bölməsini tapın və Sazlama məlumatını yaz seçiminin Kernel yaddaş zibilinə qoyulduğundan əmin olun ) və ya Tam yaddaş zibil qutusu.

Sonra, Başlat düyməsini basın, Proqramlara (Bütün Proqramlar) gedin, Sazlama Alətlərini seçin və WinDbg-ni işə salın. Proqramda Fayl menyusuna keçin və Symbol File Path seçin ... Sonra açılan pəncərədə aşağıdakı sətri yazın:

SRV*c:\simvollar*http://msdl.microsoft.com/download/symbols

Sonuncu xüsusi məlumatlara gedən yolu müəyyən edir - "simvollar" (simvollar) adlanır ki, bu, qəza faylınızı müəyyən etməkdə sazlama alətinə kömək edə bilər.

Sətri daxil etdikdən sonra OK düyməsini sıxın. Daha sonra sazlayıcı ilə işləyərkən bu xətt simvolların msdl.microsoft.com saytından endirilməsinə və c:\symbols qovluğunda saxlanmasına səbəb olacaq.

Probleminizi həll edin

İndi başqa bir mavi ekran uğursuzluğunu və kompüterin yenidən başlamasının sonrakı tamamlanmasını gözləyin. Sonra yenidən WinDbg-ni işə salın (Vista istifadəçiləri proqramı administrator kimi işə salmalıdırlar), Fayl menyusuna klikləyin, Open Crash Dump seçin, \Windows\MEMORY.DMP faylını açın və proqram dərhal onu təhlil etməyə başlayacaq.

Təəssüf ki, WinDbg nə etdiyi haqqında çox az məlumat verir, buna görə də proqramın ilişib qaldığını düşünə bilərsiniz. Ancaq gözləyin. Anlayın ki, məsələn, çox güclü olmayan bir kompüterdə 4 GB yaddaşın təhlili bir az vaxt, saatlara qədər çəkə bilər. Buna görə də səbirli olun, əksinə analizi bir gecədə buraxın.

Ancaq adətən nəticə bir neçə dəqiqə ərzində əldə edilir. Bu, "Yəqin ki, səbəb: UACReplace.sys" kimi bir şey deyən Bugcheck Analysis xətti ilə sübut olunur. Rus dilinə tərcümə edildikdə, bu o deməkdir ki, problem UACReplace.sys faylından qaynaqlanır. Onu axtarış çubuğuna daxil edin, məsələn, Google və onun əsl mənşəyini öyrənəcəksiniz. Xüsusilə, quraşdırdığınız proqramlardan birinə aiddirsə və ya quraşdırılmış sürücü, onda siz sadəcə onu və ya onu yeniləməyə cəhd edə bilərsiniz. Bəlkə də bu, problemlərinizi həll edəcək.

Zaman zaman WinDbg heç bir faylı adlandıra bilməyəcəyini və ya sadəcə birini seçdiyini söyləmək lazımdır Windows DLL-ləri. Əgər bu sizinlə baş veribsə, o zaman status çubuğunun üstündəki əmr pəncərəsinə klikləyin və əmri yazın:

Bundan sonra Enter düyməsini basın. Bu, sizə haqqında məlumatları ehtiva edən daha ətraflı hesabat təqdim edəcək mümkün səbəblər dərdləriniz.

Əgər bu dəfə bəxtiniz gətirmədisə, ümidsiz olmayın. Sazlama, hətta mütəxəssislər üçün də olduqca çətindir. Beləliklə, WinDbg-ni bağlayın və növbəti qəzadan sonra analizatoru yenidən işə salın. Bəlkə də bu sizə daha çox məlumat verəcək. Uğurlar!

Kritik bir uğursuzluq zamanı Windows əməliyyat sistemi işləməyi dayandırır və göstərir mavi ekranölüm (BSOD). Məzmun təsadüfi giriş yaddaşı və baş vermiş xəta haqqında bütün məlumatlar paging faylına yazılır. Növbətidə Windows açılışı saxlanmış məlumatlara əsaslanan sazlama məlumatı ilə qəza zibilliyi yaradılır. Sistem hadisələri jurnalında ölümcül bir səhv qeydi yaradılır.

Diqqət!Əgər uğursuz olarsa, qəza tullantıları yaradılmadı disk alt sistemi və ya Windows-un yüklənməsinin ilkin mərhələsində kritik bir səhv baş verdi.

Windows Crash Dumps növləri

Mövcud Windows 10 əməliyyat sisteminin nümunəsindən istifadə edərək ( 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ş boşaltma (Kiçik yaddaş boşaltma)(256 KB). Bu tip fayl minimum məlumat miqdarını ehtiva edir. Bu, yalnız haqqında bir mesaj ehtiva edir BSOD xətası, sürücülər, qəza zamanı aktiv olan proseslər və qəzaya səbəb olan proses və ya nüvə ipi haqqında məlumat.
  • Yaddaş nüsxəsi. Bir qayda olaraq, kiçik ölçülü - həcmin üçdə biri fiziki yaddaş. Nüvə yaddaşı boşaltması minidumpdan 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.
  • Yaddaş boşluğunu tamamlayın. Ölçüsü ən böyükdür və sisteminizin RAM-a bərabər yaddaş tələb edir və üstəgəl 1MB, tələb olunan Windows bu faylı yaratmaq üçün.
  • Avtomatik yaddaş boşaltma. Məlumat baxımından nüvə yaddaşının boşaldılmasına uyğundur. Bu, yalnız dump faylı yaratmaq üçün nə qədər yer istifadə etməsi ilə fərqlənir. 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 süzür. Bu, Windows 10-da əlavə edilmişdir və virtual maşın işlədirsinizsə və ya sisteminiz Hyper-V hostudursa xüsusilə faydalıdır.

Windows-da yaddaş boşaltma generasiyasını necə aktivləşdirmək olar?

Win + Pause istifadə edərək, sistem parametrləri pəncərəsini açın, seçin " Əlavə sistem parametrləri» (Qabaqcıl sistem parametrləri). nişanında " əlavə olaraq" (Qabaqcıl), "" bölməsi (Başlanğıc və Bərpa), " düyməsini basın Seçimlər» (Parametrlər). Açılan pəncərədə sistem nasazlığı halında hərəkətləri konfiqurasiya edin. onay qutusunu yoxlayın " Hadisələri sistem jurnalına yazın» (Sistem jurnalına hadisə yazın), sistem çökdükdə yaradılacaq 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 qəzada 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. Sistemin avtomatik yenidən başlamasını da deaktiv edin (Avtomatik olaraq yenidən başladın).

Ə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 baş verərsə, dump faylını təhlil edə və uğursuzluqların səbəbini tapa bilərsiniz. Minidump 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ə paketi bu kompüterə quraşdırmağı və ya digər kompüterlərə quraşdırmaq üçün onu endirməyi seçin. Paketi yerli kompüterə quraşdırın.

Siz bütün paketi quraşdıra bilərsiniz, ancaq quraşdırmaq üçün yalnız debug alətini 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ə assosiasiyasının qurulması

Sadə bir kliklə dump fayllarını açmaq üçün .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şlədin: 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 edilə bilən fayl ilə birlikdə proqramın tərtibi prosesində yaradılan məlumat bloklarıdır. Belə verilənlər bloklarında dəyişən adları, funksiyalar, kitabxanalar və s. Proqramı işləyərkən bu məlumatlar lazım deyil, onu sazlayarkən faydalıdır. Microsoft komponentləri Microsoft Symbol Server vasitəsilə paylanmış simvollarla tərtib edilir.

Microsoft Symbol Server istifadə etmək üçün WinDBG qurun:

  • WinDBG-ni açın;
  • Menyuya keçin Fayl –> Simvol Fayl Yolu;
  • Microsoft veb saytından sazlama simvollarını yükləmək üçün URL-i və keşi saxlamaq üçün qovluğu ehtiva edən 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 təyin edə 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ısı yoxdursa, əvvəlcə Windows Simvol Paketləri resursundan simvol paketini endirin.

WinDBG-də qəza boşaltma 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ı siz WinDBG-dən istifadə edə bilməzsiniz. Pəncərənin altındakı (sazlayıcı əmr satırında) yazı 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şə göstərilən səhv kodudur onaltılıq dəyər və oxşayır 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ı sizə !analyze -v əmrini yerinə yetirməyi təklif edir, sadəcə olaraq keçidin üzərinə gedin və klikləyin. Bu əmr nə üçündür?

  • O, yaddaş zibilinin ilkin təhlilini aparır 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 əmrlərin çağırış yığınını göstərir.
  • Bundan əlavə, burada IP ünvanı, proses və qeydiyyat xətaları göstərilir.
  • Komanda problemin həlli üçün hazır tövsiyələr verə bilər.

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

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 (Kernel 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 səhv kodu:

BUGCHECK_STR: 0x139

Qəzaya uğrayan proses (mütləq xətanın səbəbi deyil, sadəcə həmin proses qəza zamanı yaddaşda işləyirdi):

PROCESS_NAME: sqlservr.exe

Xəta kodunun deşifrə edilməsi: Sistem bu tətbiqdə yığın buferinin daşması aşkar etdi və bu, 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 ç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.
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`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`000000000`0700000`07700004 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ı. Analizator problemli sürücünü aşkar edə bilsəydi, 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)

Yuxarıdakı nümunədə təhlil ntkrnlmp.exe nüvə faylına işarə etdi. Yaddaş boşaltma təhlili göstərdikdə sistem sürücüsü(məsələn, win32k.sys) və ya nüvə faylı (nümunəmizdə olduğu kimi ntkrnlmp.exe), çox güman ki, verilmiş 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ünə görə olduğunu görsəniz, onun adı MODULE_NAME və IMAGE_NAME dəyərlərində qeyd olunacaq.

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.

Windows üçün sazlama alətləri- Əməliyyat kodunu sazlama vasitələri Windows sistemləri. Bunlar 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 sazlayıcıları, simvollarla işləmək üçün proqramlar, fayllar, proseslər, uzaqdan sazlama üçün kommunal proqramlar daxildir. Alət dəstində sistemin müxtəlif komponentlərində nasazlıqların səbəblərini tapa biləcəyiniz yardım proqramları var. Windows üçün sazlama alətləri müəyyən bir andan müstəqil bir paylama şəklində yükləmək mümkün deyil və Windows SDK (Windows Software Development Kit) hissəsidir. Instrumental dəst 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 şəkildə endirilə bilər. Tərtibatçıların fikrincə, ən son və ən böyük cari versiya Windows üçün Sazlama Alətləri Windows SDK-da var.

Windows üçün Sazlama Alətləri tez-tez yenilənir və ictimaiyyətə təqdim olunur və bu proses ə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ın, xidmətlərin (xidmətlərin), drayverlərin və nüvənin sazlanması;
  • Şəbəkə üzərində sazlama uzaq proqramlar, xidmətlər (xidmətlər), drayverlər və kernel;
  • 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 rejimində və nüvə rejimində proqramların sökülməsi;

Windows üçün Debugging Tools-un aşağıdakı versiyaları mövcuddur: 32-bit x86, Intel Itanium, 64-bit x64. Onlardan ikisinə ehtiyacımız var: 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ə kompüterdə ayıklama vasitələrini quraşdırmalıyam? Çox vaxt, hər şeydən sonra, 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ından, yəni reyestr / sistem fayllarında dəyişiklik etmək tamamilə qəbuledilməz ola bilər. Missiya baxımından kritik serverlər buna misaldır. Nə üçün tərtibatçılar quraşdırma tələb etməyən tətbiqlərin portativ versiyaları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ət dəstinin quraşdırılması yollarına 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ə Microsoft Windows 10 Mobil Cihaz Emulatoru (versiya 10586.11)" elementinin altında və Windows 10 adlı bölməni tapın.

Bir 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(hazırda 4,5-dir). Paket yoxdursa, quraşdırma təklif olunacaq və bitdikdən sonra stansiya yenidən işə salınacaq. Yenidən başladıqdan dərhal sonra, istifadəçi icazəsi mərhələsində quraşdırma prosesi birbaşa Windows SDK ilə 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.

Üçün Hata Ayıklama Alətləri quraşdırıldıqdan sonra Windows yeri faylları aradan qaldırdıqda 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 sazlama vasitələrinin bütün əvvəlki versiyaları üçün klassik yollardan nəzərəçarpacaq dərəcədə fərqləndiyini görmüsünüzmü?

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 alətlərinin versiyalarını quraşdırmaqdır.

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 Windows SDK Arxiv səhifəsində müvafiq sistem üçün ISO şəklini yükləyə bilərsiniz. Bununla belə, hazırda sdksetup.exe veb quraşdırıcısını işə salmaqla və elementi seçməklə SDK-nın ISO görüntüsünü ə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ə:

Məlum olduğu kimi, veb quraşdırıcıdan istifadə edərək əvvəlki quraşdırma metodu olduqca şıltaqdır və tez-tez uğursuz olur. 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 üçün belədirsə, bu üsuldan istifadə edin.

Müvafiq olaraq, səhifədə tələb olunan paylama dəstini seçməlisiniz, mənim üçün (və çoxları üçün düşünürəm) hazırda " Windows paketi Windows 7 və .NET Framework 4 üçün SDK" seçin və aşağıdakı "DVD ISO şəklini əldə edin" linkinə klikləyin.

msdn.microsoft.com saytı ilə işləyərkən sizə 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ı müşahidə olunub!

Buna görə, yalnız lazım olduqda seçmək lazımdır. Adətən Windows üçün Sazlama Alətlərinin bitliyi sistemin bitliyi ilə eynidir. Mənim test sistemlərim əsasən 64-bitdir, buna görə də əksər hallarda 64-bit 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-nin yandırılmasıdır, lakin bu, kifayət qədər uzun və bəzən bahalı bir üsuldur. istifadə etməyi təklif edirəm pulsuz kommunal xidmətlər sistemdə virtual disk qurğuları yaratmaq. Şəxsən mən bu məqsədlə DEAMON Tools Lite proqramından istifadə etməyi üstün tuturam. Kiminsə başqa üstünlükləri, daha birbaşa və ya yüngül kommunalları ola bilər, necə deyərlər, dad və rəngdə .. Quraşdırıldıqdan sonra DAEMON Alətləri Lite, mən sadəcə GRMSDKX_EN_DVD.iso şəkil faylına iki dəfə klik edirəm və sistemimdə yeni virtual CD var:

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

Siyahıdan quraşdırılacaq komponentləri seçmək növbəsi gəldikdə, ekran görüntüsündə qeyd olunanlardan başqa bütün variantları 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.


Düzdür, ekran görüntüsü iki variantı göstərir: "Windows Performans Alətlər dəsti" və "Windows üçün Debugging Tools". Hər ikisini seçin, çünki Windows Performans Alətlər dəsti işinizdə mütləq faydalı olacaq! Bundan əlavə, "Növbəti" düyməsini basdıqdan sonra quraşdırma normal rejimdə 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 Sazlama Alətləri dəstinin işçi kataloqları aşağıdakı kimi olacaq:

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

Bu, Windows üçün Sazlama Alətlərinin quraşdırılmasını tamamlayır.

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

Windows üçün Sazlama Alətlərini iki ilə quraşdırmaqda problemlərlə qarşılaşsanız əvvəlki yollar, bizdə hələ də ehtiyatda daha bir var, ən etibarlı və zamanla sınaqdan keçirilmiş, belə desək, bir dəfədən çox kömək etdi. Bir dəfə, 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 .msi quraşdırıcısı kimi mövcud idi. Çünki bizdə artıq var Windows ISO SDK, onda biz onu sistemə quraşdıra bilmərik, sadəcə olaraq artıq tanınmış proqramların köməyi ilə açırıq. WinRAR arxivi, quyu və ya ISO disklərinin məzmunu ilə işləyən hər hansı digər məhsul.

Şə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 Sazlama Alətləri dəstinin işçi kataloqları 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ə mənim diqqətsizliyimlə bağlıdır, lakin Windows üçün Debugging Tools-u quraşdırdıqdan sonra quraşdırıcı Path sistem yolu dəyişənində sazlayıcı ilə qovluğa gedən yolu təyin etmir. Bu, birbaşa konsoldan müxtəlif sazlama tapşırıqlarının icrasına müəyyən məhdudiyyətlər qoyur. Ona görə də yol olmadığı halda özüm pəncərədə 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 dərinlikli OS-nin istifadəsinə görə, həm də fərqli ola bilər. SDK istifadəsi digər versiya.

Windows üçün Debugging Tools paketinin utilitləri portativ proqramlar kimi işləyə bilər, sadəcə olaraq buradan kopyalayın iş sistemi kataloq 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ı etsəniz 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əri

İ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, 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 Ripiter (proksi server).
dbgpc.exe RPC çağırışının statusu haqqında məlumatı göstərmək üçün köməkçi 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 doğrulama yardım proqramı. üçün kommunal sürətli yoxlama dump faylı.
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 dəfə sistemlər üçün kd adlanırdı Windows bazası x86 maşınları üçün NT/2000? 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 əsaslı sistemlər üçün kd belə adlanırdı? Yəqin ki, uyğunluq səbəbi ilə ayrılıb.
kd.exe Kernel-rejim konsolu sazlayıcı.
kdbgctrl.exe Kernel debug idarəetmə aləti. Kernel ayıklama bağlantısını idarə etmək və konfiqurasiya etmək üçün köməkçi 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 həmin 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 faydalıdır.
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ə yığılmışdı - böyük mətn və ya jurnal 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 kiçik sazlayıcı. Utilit logexts.dll faylını bütün funksiya çağırışlarını və yoxlanılan 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 yazılmış qeydlərə baxmaq üçün köməkçi proqram.
ntsd.exe Microsoft NT Simvolik Debugger (NTSD). Başlanğıcda 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 yardım proqramı.
remote.exe Uzaqdan sazlama üçün yardım proqramı və uzaqdan nəzarət hər hansı bir konsol debugger KD, CDB və NTSD. Bütün bu konsol sazlayıcılarını uzaqdan işə salmağa imkan verir.
rtlist.exe Uzaqdan Task Viewer. Kommunal siyahı göstərmək üçün istifadə olunur işləyən proseslər DbgSrv server prosesi vasitəsilə.
symchk.exe Microsoft simvol serverindən simvolları endirmək və yerli simvol keşini yaratmaq üçün yardım proqramı.
symstore.exe Şəbəkə yaratmaq üçün köməkçi proqram və ya yerli saxlama simvollar (2 səviyyəli/3 səviyyəli). Simvol anbarı diskdə müəyyən bir quruluşa uyğun qurulmuş və simvolları ehtiva edən ixtisaslaşmış bir kataloqdur. Simvolların kök kataloqunda komponentlərin adları ilə eyni adlarla alt qovluq strukturu yaradılır. Öz növbəsində, bu alt qovluqların hər biri ikili faylların hashing yolu ilə əldə edilən xüsusi adları olan iç içə alt qovluqları ehtiva edir. Symstore yardım proqramı komponent qovluqlarını skan edir və hər hansı bir müştərinin onları əldə edə biləcəyi simvol anbarına yeni komponentlər əlavə edir. Symstore-un 0 səviyyəli yaddaşdan simvollar əldə etmək və onları 2 səviyyəli/3 səviyyəli yaddaşa yerləşdirmək üçün istifadə edildiyi deyilir.
tlist.exe Tapşırıq Baxıcısı. Bütün çalışan prosesləri siyahıya salmaq üçü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 variantları göstərməyə imkan verir.
usbview.exe USB görüntüləyici. baxmaq üçün faydalıdır USB cihazları kompüterə qoşulmuşdur.
vmdemux.exe Virtual Maşın Demultipleksatoru. Tək bir COM bağlantısı üçün çoxlu adlandırılmış borular yaradır. Kanallar virtual maşının müxtəlif komponentlərini sazlamaq üçün istifadə olunur
windbg.exe GUI ilə istifadəçi rejimi və nüvə rejimi sazlayıcısı.