Menü
Bedava
kayıt
ev  /  ÜZERİNDE/ Windows için Hata Ayıklama Araçlarını Yükleme. Windows komut satırı ile çalışma, Hata Ayıklama programı ve kullanımı Hata ayıklama exe yardımcı programı nedir

Windows için Hata Ayıklama Araçlarını Yükleme. Windows komut satırı ile çalışma, Hata Ayıklama programı ve kullanımı Hata ayıklama exe yardımcı programı nedir

hata ayıklama.exe- yürütülebilir dosyaları kontrol etmek ve hatalarını ayıklamak için kullanılan bir hata ayıklayıcı programı.

İşletim sistemi altında kullanılır MS-DOS ... İşletim sistemlerinin sonraki sürümleri için

emülatör aracılığıyla çalışır MS-DOS ve sınırlı yeteneklere sahiptir. Komut zaman çizelgesi aracılığıyla çağrıldı

DEBUG [[sürücü:] [rota] dosya adı [seçenekler]].

Örneğin: DEBUG C: \ ... \ My.com

Bu program bir konsol uygulamasıdır ve dosya kodunu oluşturmak veya değiştirmek için tasarlanmıştır. Bununla, için basit uygulamalar oluşturabilirsiniz. MS-DOS ve çalışmalarını takip edin. Bu hata ayıklayıcı en düşük derleyici düzeyinde montajcı... Ancak belleği görüntüleme ve değiştirme, kayıtların durumunu alma gibi iyi yeteneklere sahiptir.

Debug.exe Komutları

Debug.exe komut seti kuralları:

· Debug.exe büyük/küçük harfe duyarsızdır.

· Komutlardaki boşluklar yalnızca parametreleri ayırmak için kullanılır.

· Girilen sayılar onaltılık düzende olmalı ve sonunda h harfi olmamalıdır.

· Segment ve ofset, segment: offset, örneğin CS: 3C1 (kod segmentinde ofset 3C1h) veya 40:17 (başlangıç ​​adresi 40h olan segmentte ofset 17h) biçiminde iki nokta üst üste kullanılarak yazılır.

Hata ayıklayıcıyı yükledikten sonra ekranda tireli bir istem belirir. Kayıtlar C'ler, DS, ES, SSşu anda, program segmentinin 256 baytlık önekinin adresi ile başlatılırlar ve bellekteki çalışma alanı bu önek + 100h adresinden başlayacaktır. Komutlar hata ayıklama.exe imleçle işaretlenen yere istemden hemen sonra girilir. Her komut bir tanımlayıcı ve parametrelerden oluşur, tanımlayıcı bir harften oluşur.

Tablo 1. Tüm debug.exe komutlarının özeti

Emretmek Açıklama Biçim
A (Montaj) Montaj talimatlarının makine koduna çevrilmesi; varsayılan adres CS: 0100h'dir. A [<адрес_начала_кода>]
C (Karşılaştır) İki bellek alanının içeriğinin karşılaştırılması; varsayılan DS'dir. Komut, ya bölümlerin uzunluğunu ya da adres aralığını belirtir. C<начальный_адрес_1>L<длина> <начальный_адрес_2>C<начальный_адрес_1> <конечный_адрес_1> <начальный_адрес_2>
D (Görüntüleme / Boşaltma) Bir bellek alanının içeriğini onaltılık ve ASCII biçimlerinde görüntüler. Varsayılan DS'dir; bir uzunluk veya aralık belirtebilirsiniz. NS [<начальный_адрес>] D [başlangıç_adresi bitiş_adresi]
E (Giriş) Makine kodunun verilerini veya talimatlarını belleğe girme; varsayılan DS'dir. E [<адрес> [<инструкции/данные>]]
F (Doldur) Hafıza alanını listeden verilerle doldurma; varsayılan DS'dir. Hem uzunluk hem de aralık kullanılabilir. F<начальный_адрес_1>L<длина> "<данные>"F<начальный_адрес> <конечный_адрес> "<данные>"
G (Git) Belirtilen bir kesme noktasına kadar hata ayıklanmış bir makine dili programının yürütülmesi; varsayılan CS'dir. Bunu yaparken, IP'nin doğru adresi içerdiğinden emin olun. G [=<начальный_адрес>] <адрес_останова> [<адрес_останова> ...]
H (Onaltılık) İki onaltılık değerin toplamını ve farkını hesaplar. H<величина_1> <величина_2>
ben (giriş) Bağlantı noktasından bir bayt okuyun ve çıktısını alın. ben<адрес_порта>
L (Yük) Disk sektörlerinden belleğe dosya veya veri yükleme; varsayılan CS: 100h'dir. Dosya, debug.exe çalıştırılırken N komutu veya bir bağımsız değişken kullanılarak belirtilebilir. L [<адрес_в_памяти_для_загрузки>] L [<адрес_в_памяти_для_загрузки> [<номер_диска> <начальный_сектор> <количество_секторов>]]
M (Hareket) Bellek hücrelerinin içeriğinin kopyalanması; varsayılan DS'dir. Hem uzunluk hem de aralık belirtilebilir. m<начальный_адрес>L<длина> <адрес_назначения>m<начальный_адрес> <конечный_адрес> <адрес_назначения>
N (Ad) L ve W komutları için bir dosya adı belirtme. n<имя_файла>
O (Çıkış) Bağlantı noktasına bir bayt gönderme. Ö<адрес_порта> <байт>
P (Devam) Bir sonraki ifadeye geçerek CALL, LOOP, INT veya REPnn önekleriyle tekrarlanan bir dize ifadesi yürütün. P [=<адрес_начала>] [<количество_инструкций>]
Q (Çık) Debug.exe'yi kapatın. Q
R (Kayıt) Kayıtların içeriğinin ve sonraki talimatın çıktısı. r<имя_регистра>
S (Arama) Listeden sembolleri hafızada arayın; varsayılan DS'dir. Hem uzunluk hem de aralık belirtilebilir. S<начальный_адрес>L<длина> "<данные>"S<начальный_адрес> <конечный_адрес> "<данные>"
T (İz) Programın adım adım yürütülmesi. P komutunda olduğu gibi, varsayılan CS: IP çiftidir. Kesintileri yürütmek için P komutunu kullanmanın en iyisi olduğunu unutmayın. T [=<адрес_начала>] [<количество_выполняемых_команд>]
U (Sökme) Makine kodunun sökülmesi; varsayılan CS: IP çiftidir. Ne yazık ki, debug.exe, 80286+ işlemciler için belirli yönergeleri doğru bir şekilde yürütmelerine rağmen doğru şekilde parçalarına ayırmaz. U [<начальный_адрес>] U [<начальный_адрес конечный_адрес>]
W (Yaz) debug.exe'den dosya yazma; eğer yüklenmemişse dosya adını N komutu ile belirtmek zorunludur. Ve programlar sadece .COM dosyaları olarak yazılır! W [<адрес> [<номер_диска> <начальный_сектор> <количество_секторов>]]


Bellek alanlarını görüntüleme

Ekibin çalışmalarını ayrıntılı olarak ele alalım NS, tek tek bellek alanlarının içeriğini görüntülemenizi sağlar. Bu örnek komutu kullanır NS 0159: 0240'tan başlayan hafıza alanını görüntülemek için:

Burada, hafıza alanını görüntüleme talebi üzerine, seçilen hafıza alanının içeriğini gösteren sekiz satır aldık. Her satırın üç bölümü vardır:

Biçimde soldan gösterilen ilk baytın adresi segment: ofset.

· Satırın başında belirtilen bayttan başlayarak paragrafın (16 bayt) onaltılık gösterimi.

· ASCII formatında aynı paragrafın karakterleri.

Satırda belirtilen adres, yalnızca paragraftaki ilk bayta atıfta bulunur ve sonraki baytların adresleri bağımsız olarak hesaplanmalıdır. Onaltılık gösterim, bayt başına iki karakter içerir ve baytların kendileri, kolay okuma için boşluklarla ayrılır. Ayrıca sekizinci ve dokuzuncu baytların bir tire ile ayrıldığını, böylece paragrafı ikiye böldüğünü ve paragraftaki baytların adreslerinin hesaplanmasını kolaylaştırdığını belirtmek gerekir.

D Takım Hileleri

Paralel ve seri bağlantı noktalarını kontrol etme

BIOS veri alanının ilk 16 baytı, paralel ve seri bağlantı noktalarının adreslerini içerir. Bu nedenle, aşağıdaki komutu kullanarak bu bağlantı noktalarını kontrol edebilirsiniz:

Yazdırılan ilk sekiz bayt, seri bağlantı noktası adreslerini gösterir COM1-COM4... Sonraki 8 bayt, paralel bağlantı noktası adreslerini gösterir LPT1-LPT4... Örneğin, bilgisayarınızda bir paralel bağlantı noktası varsa, ilk iki bayt büyük olasılıkla: 7803 olacaktır. Bağlantı noktası adresi ters sırada yazılır; 0378.

Ekipman kontrolü

BIOS'ta 410h'de bulunan ilk iki bayt, sistemde kurulu donanım hakkında bilgi içerir. Bu baytları şu komutla buluruz:

İlk iki baytın 23 44 olduğunu varsayalım. Kurulu cihazlar hakkında bilgi almak için bu baytların şifresini çözelim. Bunu yapmak için, bu baytları (44 23) ters çevirin, ardından bunları İkili sistem hesaplaşma. Alırız:

bit değeri
Bit konumu

Bu bitler ne anlama geliyor? Deşifre etmeye devam ediyoruz:

Klavye kayıt durumunu kontrol etme

Veri alanında BIOS adrese göre 417h klavye kaydının durumunu saklayan ilk bayt bulunur. Kapat Rakam kilidi ve Caps Lock , ardından şu komutu yazıyoruz:

İlk bayt 00 olacaktır. Rakam kilidi ve Caps Lock, komutu yeniden yürütün. Şimdi ilk bayt 60'a eşit olmalıdır. Rakam kilidi ilk bayt 20'dir ve ne zaman Caps Lock - 40.

Video sisteminin durumunu kontrol etme

adrese göre 449h v BIOS ilk video veri alanı bulunur. Kontrol etmek için şunu yazıyoruz:

İlk bayt, geçerli video modunu gösterir (örneğin, 03 renktir), ikincisi ise sütun sayısıdır (örneğin, 50, 80 sütunlu bir moddur). Satır sayısı adresinde bulunabilir. 484h (40:84).

BIOS telif hakkı ve seri numarasını kontrol etme

Telif hakkı bilgileri BIOS gömülü ROM BIOS'u adrese göre FE00: 0... Telif hakkı dizesi ASCII dizisinde kolayca bulunabilir ve seri numarası- onaltılık bir sayı olarak. Bununla birlikte, telif hakkı satırı uzun olabilir ve çıktı belleği alanına sığmayabilir. Bu durumda, tekrar girmeniz yeterlidir NS.

BIOS üretim tarihi kontrolü

Bu tarih de kayıtlıdır. ROM BIOS'u adresten başlayarak FFFF: 5... Karşılık gelen komutu yürüttükten sonra, ASCII dizisi, formatta yazılmış bu tarihi içerecektir. aa / gg / yy.

Debug.exe kullanarak programı doğrudan belleğe girme

hata ayıklama.exe bir programı doğrudan makinenin belleğine girmenize ve ardından çalışmasını izlemenize ve kontrol etmenize olanak tanır. Komutu kullanarak programa makine kodlarına gireceğiz E... Bu durumda, uyanık olun - Yanlış adrese hatalı veri girmek, öngörülemeyen sonuçlarla doludur! Bunun sistemde ciddi sorunlara yol açması pek olası olmasa da, girilen tüm verileri kaybedecektir. hata ayıklama.exe, kolayca yapabilirsiniz. Girilecek program, doğrudan talimatların gövdesinde saklanan verileri kullanır. Aşağıdakiler Assembler'daki bir programın listesidir, yorumlar makine kodlarındaki dil komutlarının analoglarını ve ayrıca her komutun bir açıklamasını gösterir. Rakamlarda sembol olmadığına dikkat edin. Hçünkü yukarıda bahsedildiği gibi, hata ayıklama.exe sadece onaltılık sayıları anlar.

MOV AX, 0123; kod B82301: 0123h değerini AX'e girin

AXE EKLE, 0025; 052500 kodu: AX değerine 0225h ekleyin

MOV BX, AX; 8BD8 kodu: AX'in değerini BX'e girin

EKLE BX, AX; kod 03D8: AX'in değerini BX'e ekleyin

MOV CX, BX; kod 8BCB: BX'in değerini CX'e girin

ALT CX, AX; 2BC8 kodu: AX'in değerini CX'ten çıkarın

ALT AX, AX; 2BC0 kodu: AX'i temizle

JMP 100; EBEE kodu: programın başına git

Gördüğünüz gibi, her makine talimatı 1 ila 3 bayt uzunluğundadır. İlk bayt işlemi belirtir, sonrakiler işlenenleri gösterir. Programın yürütülmesi sırasıyla ilk komuttan başlar ve sırayla tüm komutları birbiri ardına takip eder. Program artık belleğe girilebilir. Makine kodunu altı baytlık üç parçaya bölün ve her birini komutu kullanarak girin. E ve adresten başlayarak CS: 100.

Artık program hafızada olduğuna göre, çalışmasını kontrol etmeye çalışalım. Önce kontrol edelim Şu anki durum kayıtlar ve bayraklar, bunun için komutu giriyoruz r... Hata ayıklayıcı, kayıtların içeriğini onaltılık biçimde yazdırır; üzerinde farklı arabalar kayıtların içeriği değişebilir.

Yani gördüğün gibi hata ayıklama.exe başlatılmış segmentler DS, ES, SS, C'ler aynı adres. Kayıt olmak IP içerir 0100 , talimatların ofsette yürütüldüğünü gösterir 100 saat Nispeten C'ler(ve biz, talimatları belleğe girerek, bu adresi az önce belirttik).

Taşma, yön, kesinti, işaret, sıfır, ek taşıma, parite ve taşıma bayraklarının değerleri de burada belirtilmiştir:

Kayıtlardan ve bayrakların durumundan sonra, debug.exe yürütülecek ilk komutla ilgili bilgileri yazdırır:

· Komutun adresi, bizim durumumuzda 0B12: 0100'dür, burada 0B12 kod bölümünün adresidir.

· Bu kılavuza göre makine kodu (B82301).

· Assembler'da yazılan gerçek talimat (MOV AX, 0123).

Şimdi register ve flagların içeriğini inceledikten sonra programı çalıştırmaya geçelim. Komutu kullanarak programı adım adım uygulayacağız. T... Komutu ilk kez kullandığınızda T, talimatı takip ediyoruz HAREKET... Burada talimat işleneninin makine kodu - 2301 ... Operasyon yerleri 23 v AL(genç yarısı balta), a 01 -v AH(daha eski). Daha sonra hata ayıklama.exe tekrar kayıtlar hakkında bilgi yazdırır:

Şimdi balta içerir 0123h, IP0103h(dolayısıyla yürütülen ifadenin uzunluğu: 0103h - 0100h = 3 bayt) ve sonraki talimat işlemdir EKLE... Yani, komutu tekrar tekrar yürütmek T, son talimata geçeceğiz 100... Kayıt ayarlayacak IP v 100 saat, ve hata ayıklama.exe programın başına dönecektir. Programın başına dönersek, şunu belirtmek gerekir ki, DS, ES, SS ve C'ler aynı adresi içerir. Gerçek şu ki hata ayıklama.exe girilen programları yalnızca program olarak kabul eder .COM... ve programlarda .COM, Farklı .EXE, yığın, kod ve veriler bir segmentte saklanır.

Montaj ve demontaj

Bir önceki örnekte, programı makine kodlarına girmiştik ancak, hata ayıklama.exe assembler'da yazılmış talimatları anlama konusunda oldukça yetenekli. Bu tür programlarla çalışmak için hata ayıklama.exe komutlar kullanılır A ve sen.

Emretmek A montaj talimatlarını ister ve bunları makine koduna dönüştürür. İlk olarak, talimatları girmek için başlangıç ​​adresini başlatıyoruz (100h):

Hata ayıklayıcı, kod bölümünün ve ofsetin adresini yazdıracaktır (örneğin, 13F2: 0100). Şimdi her satırdan sonra tuşuna basarak aşağıdaki montaj talimatlarını hafızaya girmeliyiz. Girmek:

Son talimatı girdikten sonra, tuşuna basın. Girmek hata ayıklayıcıya program metnini girmeyi bitirdiğimizi belirtmek için iki kez. Artık program komutlar kullanılarak çalıştırılabilir. r Kayıtları görüntülemek ve T izleme için. Programlarımda talimatlar varsa INT bir komutla işlenmemelidirler T, ve komut P bu, tüm kesmeyi bir kerede ele alır.

Demontaj prosedürüne geçelim ve örnek olarak az önce tanıtılan programı ele alalım. Sökeceğimiz aralığı belirtmek için ilk ve son talimatların adreslerini kullanıyoruz, yani. 100 saat ve 107 saat.

Bu komutu çalıştırdıktan sonra hata ayıklama.exe belirtilen aralıktaki talimatları, montajcıda, makine kodlarında ve ayrıca her talimatın adresini görüntüler:

Bir programı diske kaydetme

Önce dosya adı verilir:

Daha sonra kayıt defterine NS programın boyutunu bayt olarak koymak gerekir. Bitiş ve başlangıç ​​ofsetleri arasındaki farka eşit olacaktır. Şimdi geriye kalan tek şey komutla diske yazmak. W ve sonuç olarak, yazılan bayt sayısına bakın. Sonuç olarak, yürütmeye hazır bir program elde ederiz.

Çıkış komutu ile gerçekleştirilir. Q... Örnek:

0B3B: 0100 hareket baltası, 1234

0B3B: 0103 hareket ah, 4c

0B3B: 0105 int 21

0B3B: 0100 B83412 MOV AX, 1234

0B3B: 0103 B44C HAREKET AH, 4C

0B3B: 0105 CD21 INT 21

AX = 0000 BX = 0000 CX = 0007 DX = 0000 SP = FFEE BP = 0000 SI = 0000 DI = 0000

DS = 0B3B ES = 0B3B SS = 0B3B CS = 0B3B IP = 0100 NV UP EI PL NZ NA PO NC

0B3B: 0100 B83412 MOV AX, 1234

00007 bayt yaz

Bunu gerçekleştirmek için laboratuvar işi birkaç montajcı komutuna ihtiyacınız olacak:

HAREKET AH,<шестнадцатиричное число>- kayıt defterine yazma AH sayılar 02 bir sistem işlevini belirtmek için - ekranda bir simgenin gösterilmesi;

MOV DL,<шестнадцатиричное число>- kayıt defterine yazma DL karakter kodu;

INT 21 - birçok farklı işlevi uygulayan ana DOS kesmesi (prosedür); fonksiyon numarası AH kaydına önceden yazılmıştır; ekrana bir karakter yazdırmak için - AH kayıt işlevinde 02, DL sembol kodunu önceden kaydedin.

INT 20, programdan çıkan bir DOS kesmesidir (.COM programından).

Örnek:

Ekranda "*" karakterini görüntüleyin.

hareket AH, 02; sistem işlevi 02 - ekranda bir karakter gösteriliyor

hareket DL, 2A; ASCII yıldız işareti

int 21h; "*" çıkışı için kesme

int 20h; programdan çık

pratik görev

Hedef

debug.exe hata ayıklayıcısına aşinalık. Bu programla çalışırken pratik beceriler kazanmak.

Teçhizat:

Kişisel bilgisayar Windows işletim sistemini çalıştıran.

Yazılım:

Hata ayıklama programı.

Kabul için sorular

1. Hata Ayıklama ne için?

2. Bu programı nasıl başlatırım?

3. Komutlar Debug'a nasıl girilir?

4. Tanımlayıcı nedir?

5. Program Debug'a nasıl girilir?

Egzersiz yapmak

· Teorik materyali inceleyin.

· Yol boyunca açıklanan komutları gerçekleştirin.

2 sayının toplamını ve farkını bulun: 1. sayı gruptaki sayıdır (onaltılık forma çevrilmiştir), 2. sayı soyadının alfabedeki ilk harfinin karşısındaki sayıdır ( negatif bir sayı tamamlayıcı kodunda). Toplamı ve farkı ondalık sayıya dönüştürün.

· Mikroişlemci kayıtlarının ve bayraklarının içeriğini görüntüleyin ve bunları protokole yazın. Kayıtların her birinin işlevi nedir? ...

· AX kaydına ilk numarayı (3. görevden) ve BX kaydına - ikincisini (3. görevden) yazın. girin Veri deposu kod segmentine (100 ofset) AX ve BX kayıtlarını eklemek için makine talimatı. Montajcı formunu ekranda görüntüleyin. Bu komutu çalıştırın, sonucu ondalık forma dönüştürün.

· Soyadınızın ilk harfi olan ekrana bir karakter yazdırmak için kod bölümünde (ofset 100) ana belleğe bir dizi montajcı komutu girin. DEBUG'daki programı kontrol edin. Ardından .COM dosyası olarak diske yazın. Programın boyutu nedir? DOS'tan çalıştırın.

· Rapordaki tüm eylemleri açıklayın.

1. Eserin adı.

2. Çalışmanın amacı.

3. Aletler ve ekipman.

4. Kısa teorik bilgi.

5. Alınan önlemlerin açıklaması.

6. Oluşturulan programın metni.

7. Sonuçlar.

Kontrol soruları

1. Verilerin veya makine kodunun talimatlarının belleğine girişi hangi komut gerçekleştirir?

2. İki bellek alanının içeriği nasıl karşılaştırılır?

3. Hafıza alanı listedeki verilerle nasıl doldurulur?

4. Hatası ayıklanan makine programını hangi komut yürütür?

5. Dosyayı Debug'dan hangi komut yazar?

6. Montaj ve demontaj nasıl yapılır?

Hata Ayıklama Araçları pencereler için - İşletim kodu için hata ayıklama araçları Windows sistemleri... Bunlar, Microsoft'un kullanıcı modu ve çekirdek modu kodunda hata ayıklamak için tasarlanmış bir dizi ücretsiz yazılımdır: uygulamalar, sürücüler, hizmetler, çekirdek modülleri. Araç takımı, konsol ve GUI modu hata ayıklayıcılarını, sembollerle çalışmak için yardımcı programları, dosyaları, işlemleri ve uzaktan hata ayıklamayı sağlamak için yardımcı programları içerir. Araç seti, sistemin çeşitli bileşenlerindeki arızaların nedenlerini bulabileceğiniz yardımcı programları içerir. Windows için Hata Ayıklama Araçları belirli bir andan itibaren tek başına bir dağıtım seti biçiminde indirilemezler ve Windows SDK'ya (Windows Yazılım Geliştirme Seti) dahil edilirler. enstrümantal set Windows araçları SDK, sırayla, MSDN abonelik programının bir parçası olarak mevcuttur veya msdn.microsoft.com adresinden bağımsız bir dağıtım olarak ücretsiz olarak indirilebilir. Geliştiricilere göre, en son ve en şimdiki versiyonu Windows için Hata Ayıklama Araçları, Windows SDK'sında bulunur.

Windows için Hata Ayıklama Araçları güncellenir ve şuraya yüklenir: Kamu erişim oldukça sık ve bu süreç hiçbir şekilde işletim sistemlerinin piyasaya sürülmesine bağlı değildir. Bu nedenle, periyodik olarak yeni sürümleri kontrol edin.

Şimdi, özellikle Hata Ayıklama Araçlarının ne için olduğunu görelim. Microsoft Windows:

  • hata ayıklama yerel uygulamalar, hizmetler (hizmetler), sürücüler ve çekirdek;
  • Ağ üzerinden uzak uygulamalar, hizmetler (hizmetler), sürücüler ve çekirdek hatalarını ayıklayın;
  • Çalışan uygulamaların hatalarını gerçek zamanlı olarak ayıklayın;
  • Uygulama belleği, çekirdek ve sistemin döküm dosyalarını bir bütün olarak analiz edin;
  • x86 / x64 / Itanium mimarilerine dayalı sistemlerle çalışın;
  • Kullanıcı modu ve çekirdek modu programlarında hata ayıklama;

Windows için Hata Ayıklama Araçları'nın şu sürümleri mevcuttur: 32-bit x86, Intel Itanium, 64-bit x64. İkisine ihtiyacımız var: x86 veya x64.

Windows için Hata Ayıklama Araçlarını kurmanın birkaç yolu vardır, bu yazıda sadece ana olanları ele alacağız:

  • Web yükleyici aracılığıyla kurulum.
  • Windows için Hata Ayıklama Araçlarını Windows SDK ISO görüntüsünden yükleme.
  • Windows için Hata Ayıklama Araçlarını doğrudan dbg_amd64.msi /dbg_x86.msi paketlerinden yükleme.

Hangi noktada belirsizliğini koruyor, neden hata ayıklama araç setini bilgisayarıma kurmalıyım? Sonuçta, çoğu zaman, çalışma ortamına müdahalenin son derece istenmeyen olduğu bir durumla karşı karşıya kalırsınız! Ayrıca yeni bir ürünün yüklenmesi yani kayıt defteri/sistem dosyalarında değişiklik yapılması tamamen kabul edilemez olabilir. Örnekler, kritik görev sunucularıdır. Geliştiriciler neden kurulum gerektirmeyen uygulamaların taşınabilir (taşınabilir) sürümleriyle bir seçenek düşünmüyor?
Windows için Hata Ayıklama Araçları paketinin yükleme işlemi, sürümden sürüme birkaç değişiklik geçirdi. Şimdi doğrudan kurulum sürecine geçelim ve araç setinin nasıl kurulabileceğine bakalım.

Web yükleyiciyi kullanarak Windows için Hata Ayıklama Araçlarını Yükleme

Windows SDK Arşivi sayfasına gidin ve "Windows 10 SDK (10586) ve Windows 10 Mobile (Microsoft) (sürüm 10586.11) ile bir aygıt öykünücüsü" öğesinin altında Windows 10 adlı bir bölüm bulun.

Öğeye tıklıyoruz SDK'YI YÜKLE... Tıkladıktan sonra, Windows SDK'nın çevrimiçi kurulumunu başlatan sdksetup.exe dosyasını indirin ve çalıştırın. İlk aşamada, yükleyici sistemde kurulu .NET paketini kontrol edecektir. En son çerçeve sürüm (içinde şu an bu 4.5). Paket eksikse, kurulum teklif edilecek ve tamamlandıktan sonra istasyon yeniden başlatılacaktır. Yeniden başlatmanın hemen ardından, kullanıcı yetkilendirme aşamasında, yükleme işlemi doğrudan Windows SDK'dan başlar.

Çoğu zaman, bir paketin istisnasız tüm bileşenlerini seçerken, yükleme işlemi sırasında hatalar meydana gelebilir. Bu durumda, gerekli minimum set olan bileşenleri seçerek kurmanız önerilir.

Windows için Hata Ayıklama Araçları kurulumu tamamlandıktan sonra, hata ayıklama dosyalarının konumu Bu method kurulumlar aşağıdakilere sahip olacağız:

  • 64 bit sürümler: C: \ Program Dosyaları (x86) \ Windows Kitleri \ x.x \ Hata Ayıklayıcılar \ x64
  • 32 bit sürümler: C: \ Program Dosyaları (x86) \ Windows Kitleri \ x.x \ Hata Ayıklayıcılar \ x86

* burada x.x, geliştirme kitinin belirli bir sürümüdür;
Sürüm 8 ve üzeri, yükleme yollarının hata ayıklama araçlarının önceki tüm sürümleri için klasik olanlardan belirgin şekilde farklı olduğunu fark ettiniz mi?

büyük bir artı Bu method Windows için Hata Ayıklama Araçlarını Yüklemek, tüm mimariler için hata ayıklama araçlarının sürümlerinin aynı anda yüklenmesidir.

Windows SDK ISO Görüntüsünden Windows için Hata Ayıklama Araçlarını Yükleme

Bu yöntem, Windows SDK'nın (Yazılım Geliştirici Seti) tam yükleme görüntüsünü kullanarak Windows için Hata Ayıklama Araçlarını yüklemeyi içerir. Belirli bir zamana kadar Windows SDK Arşiv sayfasından ilgili sistem için ISO imajını indirmek mümkündü. Ancak şu anda web yükleyici sdksetup.exe'yi çalıştırarak ve öğeyi seçerek SDK'nın ISO görüntüsünü alabilirsiniz. Windows Yazılım Geliştirme Kitini indirin yükleyicinin başlangıç ​​penceresinde:

Anlaşıldığı gibi, web yükleyiciyi kullanan önceki kurulum yöntemi oldukça kaprislidir ve çoğu zaman başarısız olur. Temiz sistemlerde sorunsuz kurulur, ancak yeterince yüklü sistemlerde çok sayıda sorun ortaya çıkar. Böyle bir durumunuz varsa, bu yöntemi kullanın.

Buna göre, sayfada şu anda benim için (ve bence çoğu için) gerekli dağıtım kitini seçmek gerekiyor " Windows paketi Windows 7 ve .NET Framework 4 için SDK "ve hemen altındaki" DVD ISO görüntüsü al "bağlantısına tıklayın.

msdn.microsoft.com sitesi ile çalışırken bir tarayıcı kullanmanızı tavsiye ederim Internet Explorerçünkü rakip ürünlerin çalışmadığı durumlar oldu!

Buna göre, sadece gerektiğinde seçim yapmak gerekir. Genellikle Windows için Hata Ayıklama Araçları'nın bitliği, sistemin bitliği ile aynıdır. İnceleme altındaki sistemlerim çoğunlukla 64 bit, bu nedenle çoğu durumda GRMSDKX_EN_DVD.iso 64 bit sistem için görüntüyü indiririm.
Ardından imajı indirdikten sonra bir şekilde mevcut ISO imajı ile çalışmamız gerekiyor. Geleneksel yol, elbette, bir CD kaydetmektir, ancak bu oldukça uzun ve bazen maliyetli bir yöntemdir. kullanmanı öneririm ücretsiz yardımcı programlar sistemde sanal disk aygıtları oluşturmak için. Şahsen ben bu amaçla DEAMON Tools Lite programını kullanmayı tercih ediyorum. Birisinin başka tercihleri ​​olabilir, daha doğrudan veya hafif yardımcı programlar, tat ve renk, dedikleri gibi .. DAEMON'u kurduktan sonra Araçlar, GRMSDKX_EN_DVD.iso imaj dosyasına çift tıklıyorum ve sistemde yeni bir sanal CD beliriyor:

Sonra çift ​​tıklama Otomatik çalıştırmayı etkinleştiriyorum ve Windows SDK'nın kurulumunu başlatıyorum:

Sıra listeden kurulacak bileşenleri seçmeye geldiğinde, ekran görüntüsünde işaretlenenler dışındaki tüm seçenekleri kesinlikle devre dışı bırakıyoruz. Bu, şimdi bizim için gereksiz hatalardan kaçınmaya yardımcı olacaktır.


Her şey tam olarak böyle, ekran görüntüsünde iki seçenek işaretlendi: "Windows Performans Araç Takımı" ve "Windows için Hata Ayıklama Araçları". Her ikisini de seçin, çünkü Windows Performance Toolkit işiniz için kesinlikle kullanışlı olacaktır! Ayrıca, "İleri" düğmesine tıkladıktan sonra kurulum devam eder. normal mod... Ve sonunda "Kurulum Tamamlandı" yazısını göreceksiniz.
Kurulum sonunda Windows için Hata Ayıklama Araçları setinin çalışma dizinleri aşağıdaki gibi olacaktır:

  • x86 sürümü için:
  • x64 sürümü için:

Bu, Windows için Hata Ayıklama Araçları'nın kurulumunu tamamlar.

Windows için Hata Ayıklama Araçlarını .msi dosyası aracılığıyla yükleme

Windows için Hata Ayıklama Araçları'nın önceki iki yöntemle yüklenmesi sırasında sorun olması durumunda, bir kereden fazla yardımcı olan, en güvenilir ve zaman içinde test edilmiş bir tane daha var. Bir zamanlar, Windows SDK'ya entegrasyondan önce, Windows için Hata Ayıklama Araçları ayrı bir .msi yükleyicisi olarak mevcuttu, şimdi hala bulunabiliyor, ancak zaten derinlemesine Windows dağıtımı SDK. Elimizde zaten Windows SDK'nın bir ISO görüntüsü olduğundan, onu sisteme monte edemiyoruz, sadece tanıdıkların yardımıyla açıyoruz. WinRAR arşivleyici, kuyu veya ISO disklerinin içeriğiyle çalışan diğer herhangi bir ürün.

Görüntüyü açtıktan sonra kökte bulunan "Kurulum" dizinine gitmemiz ve ardından dizinlerden birini seçmemiz gerekiyor:

  • 64 bit sürümünü yüklemek için: \ Kurulum \ WinSDKDebuggingTools_amd64 ve dbg_amd64.msi dosyasını bu dizinden açın.
  • 32 bit sürümü yüklemek için: \ Setup \ WinSDKDebuggingTools ve dbg_x86.msi dosyasını bu dizinden açın.

Kurulum sonunda Windows için Hata Ayıklama Araçları setinin çalışma dizinleri aşağıdaki gibi olacaktır:

  • x86 sürümü için: C: \ Program Dosyaları (x86) \ Windows için Hata Ayıklama Araçları (x86)
  • x64 sürümü için: C: \ Program Dosyaları \ Windows için Hata Ayıklama Araçları (x64)

Bu noktada, Windows için Hata Ayıklama Araçları kurulumu tamamlanmıştır.

ek bilgi

Neyle bağlantılı olduğunu bilmiyorum, belki dikkatsizliğimle, ancak Windows için Hata Ayıklama Araçları'nı yükledikten sonra, yükleyici, Path sistem değişkenindeki hata ayıklayıcı ile dizine giden yolu kaydetmiyor. Bu, çeşitli hata ayıklama görevlerinin doğrudan konsoldan başlatılmasına belirli kısıtlamalar getirir. Bu nedenle, bir yolun yokluğunda kendim pencereye yazarım Ortam Değişkenleri hata ayıklama araçlarına giden yol:

  • C: \ Program Dosyaları (x86) \ Windows Kitleri \ 10 \ Hata Ayıklayıcılar \ x86
  • C: \ Program Dosyaları (x86) \ Windows Kitleri \ 10 \ Hata Ayıklayıcılar \ x64

* Sizin durumunuzda, yollar hem farklı bitliğe sahip bir işletim sisteminin kullanılması hem de farklı bir sürümün SDK'sının kullanılması nedeniyle farklılık gösterebilir.

Windows için Hata Ayıklama Araçları paket yardımcı programları, taşınabilir uygulamalar olarak çalışabilir; çalışma sistemi katalog Microsoft Windows Performans Araç Takımı ve bir üretim sunucusunda taşınabilir bir sürüm olarak kullanın. Ama sistemin kapasitesini hesaba katmayı unutmayın!! Paketi tamamen kritik bir sisteme kurmuş olsanız bile, kurulumdan hemen sonra çalışmaya başlayabilirsiniz, yeniden başlatma gerekmez.

Windows Kompozisyonu için Hata Ayıklama Araçları

Ve şimdi, son olarak, Windows için Hata Ayıklama Araçları'nın bileşimini sunuyoruz:

Dosya Randevu
adplus.doc ADPlus yardımcı programı için belgeler.
adplus.exe Bir veya daha fazla işlem için dökümler, günlük dosyaları oluşturmak için cdb hata ayıklayıcısını otomatikleştiren bir konsol uygulaması.
agestore.exe Sembol sunucusu veya kaynak sunucusu tarafından kullanılan depodan eski dosyaları kaldırmak için bir yardımcı program.
breakin.exe CTRL + C tuşlarına basmaya benzer şekilde, işlemlere kullanıcı tanımlı bir kesme kombinasyonu göndermenizi sağlayan bir yardımcı program.
cdb.exe Kullanıcı modu konsol hata ayıklayıcısı.
convertstore.exe Sembolleri 2 katmandan 3 katmana dönüştürmek için yardımcı program.
dbengprx.exe Uzaktan hata ayıklama için Reaper (proxy sunucusu).
dbgrpc.exe Bir RPC çağrısının durumu hakkında bilgi görüntülemek için bir yardımcı program.
dbgsrv.exe Uzaktan hata ayıklama için kullanılan sunucu işlemi.
dbh.exe Bir sembol dosyasının içeriği hakkında bilgi görüntülemek için bir yardımcı program.
dumpchk.exe Dökümü kontrol yardımcı programı. için yardımcı program çabuk kontrol döküm dosyası.
dumpexam.exe Bir bellek dökümünü analiz etmek için bir yardımcı program. Sonuç % SystemRoot% \ MEMORY.TXT içinde görüntülenir.
gflags.exe Sistemin küresel bayraklarının editörü. Yardımcı program, kayıt defteri anahtarlarını ve diğer ayarları yönetir.
i386kd.exe kd için sarıcı. x86 makineleri için Windows NT / 2000 tabanlı sistemler için ne zaman kd olarak adlandırıldı? Muhtemelen uyumluluk nedeniyle bırakılmıştır.
ia64kd.exe kd için sarıcı. ia64 makineleri için Windows NT / 2000 tabanlı sistemler için ne zaman kd olarak adlandırıldı? Muhtemelen uyumluluk nedeniyle bırakılmıştır.
kd.exe Çekirdek modu konsol hata ayıklayıcısı.
kdbgctrl.exe Çekirdek hata ayıklama yönetim aracı. Çekirdek hata ayıklama bağlantısını yönetmek ve yapılandırmak için yardımcı program.
kdsrv.exe KD için Bağlantı Sunucusu. Yardımcı program, başlayan ve uzak bağlantıları bekleyen küçük bir uygulamadır. kd istemcide çalışır ve uzaktan hata ayıklama için bu sunucuya bağlanır. Hem sunucu hem de istemci aynı Hata Ayıklama Araçları derlemesinden olmalıdır.
kill.exe İşlemleri sonlandırmak için yardımcı program.
list.exe Bir dosyanın içeriğini ekranda görüntülemek için bir yardımcı program. Pakette, bu minyatür yardımcı programın tek bir amacı olduğu ortaya çıktı - büyük metin veya günlük dosyalarını görüntülemek. Metni parçalar halinde yüklediği için çok az bellek alanı kaplar.
kaydedici.exe Yalnızca bir işlemle çalışabilen minyatür bir hata ayıklayıcı. Yardımcı program, inceleme altındaki programın tüm işlev çağrılarını ve diğer eylemlerini kaydeden işlem alanına logexts.dll'yi enjekte eder.
logviewer.exe logger.exe hata ayıklayıcı tarafından yazılan günlükleri görüntülemek için bir yardımcı program.
ntsd.exe Microsoft NT Sembolik Hata Ayıklayıcı (NTSD). Hata ayıklayıcı, başlangıçta bir metin kutusu oluşturması dışında cdb ile aynıdır. CDb gibi, ntsd de hem konsol uygulamalarında hem de grafik uygulamalarında hata ayıklama yeteneğine sahiptir.
pdbcopy.exe Bir sembol dosyasından özel sembolleri kaldırmak için bir yardımcı program, sembol dosyasında bulunan genel semboller üzerinde kontrol.
uzak.exe Herhangi bir KD, CDB ve NTSD konsol hata ayıklayıcısının uzaktan hata ayıklaması ve uzaktan kontrolü için yardımcı program. Tüm bu konsol hata ayıklayıcılarını uzaktan çalıştırmanıza izin verir.
rtlist.exe Uzak görev görüntüleyici. Yardımcı program, çalışan işlemleri DbgSrv sunucu işlemi aracılığıyla listelemek için kullanılır.
symchk.exe Microsoft Symbol Server'dan sembolleri indirmek ve yerel bir sembol önbelleği oluşturmak için yardımcı program.
symstore.exe Bir ağ veya yerel sembol depolaması oluşturmak için yardımcı program (2 katmanlı / 3 katmanlı). Sembol deposu, disk üzerinde belirli bir yapıya göre oluşturulmuş ve semboller içeren özel bir dizindir. Sembollerin kök dizininde, bileşenlerin adlarıyla aynı adlara sahip bir alt klasör yapısı oluşturulur. Sırayla, bu alt klasörlerin her biri, ikili dosyaların birleştirilmesiyle elde edilen özel adlara sahip iç içe geçmiş alt klasörler içerir. Symstore yardımcı programı, bileşen klasörlerini tarar ve herhangi bir istemci tarafından alınabilecekleri simge deposuna yeni bileşenler ekler. Symstore'un 0 katmanlı bir depolamadan semboller almak ve bunları 2 katmanlı / 3 katmanlı bir depolamaya koymak için kullanıldığı söyleniyor.
tlist.exe Görev görüntüleyici. Çalışan tüm işlemleri listelemek için bir yardımcı program.
umdh.exe Kullanıcı modu döküm yığını yardımcı programı. Seçilen işlemin yığınlarını (yığın) analiz etmek için yardımcı program. Yığın için çeşitli seçenekleri görüntülemenizi sağlar.
usbview.exe USB görüntüleyici. Görüntüleme için yardımcı program USB cihazları bilgisayara bağlı.
vmdemux.exe Sanal makine çoğullayıcı. Tek bir COM bağlantısı için birden çok adlandırılmış kanal oluşturur. Kanallar, sanal makinenin çeşitli bileşenlerinde hata ayıklamak için kullanılır
Windbg.exe GUI kullanıcı modu ve çekirdek modu hata ayıklayıcı.

Android Hata Ayıklama Köprüsü (adb) konsol programı hangi hata ayıklamanıza izin verecek mobil cihazlar Android'de ve emülatörlerde.

Açıklama

Bu yardımcı program, uygulamaların yüklenmesini ve hata ayıklamasını büyük ölçüde basitleştirir ve ayrıca Unix kabuğuna erişim sağlar. İkincisi, cihazda gerekli komutları çalıştırmak için kullanılabilir. Diğer şeylerin yanı sıra program, hata ayıklama modu etkinleştirilmiş bir akıllı telefonun kilidini açmak için kullanılabilir. Bununla birlikte, gerekli işlevselliğin üretici tarafından engellenmemiş olması koşuluyla, Android Hata Ayıklama Köprüsü'nün herhangi bir Android cihazını desteklediği belirtilmelidir.

Program üç bileşen içerir:

  • Müşteri. Geliştiricinin bilgisayarında çalışır, komutlar gönderir. İstemciyi aramak için terminalde uygun komutu kullanabilirsiniz.
  • Daemon (adbd). Cihazda komutları yürütür. Her cihazda arka planda çalışır.
  • Sunucu. İstemci ve arka plan programı arasındaki iletişimi yönetir. Geliştiricinin bilgisayarında arka planda çalışır.

ADB Özellikleri:

  • Bağlı ve desteklenen cihazların listesini görüntüleyin.
  • Günlükleri görüntüleme.
  • Cihazlar arasında veri ve dosyaları kopyalayın ve aktarın.
  • Uygulamaları yükleme ve kaldırma.
  • Veri bölümünü temizleme ve üzerine yazma.
  • Ve ayrıca çok daha fazlası.

Sitemizden Android Debug Bridge'i kayıt olmadan ve SMS olmadan ücretsiz olarak indirebilirsiniz.

Ekran görüntüleri

MS-DOS yürütülebilir dosyalarını incelemek ve hata ayıklamak için bir program olan Debug.exe'yi çalıştırın. Parametresiz yürütülen komut hata ayıklama Debug.exe programını başlatır ve bir komut istemi görüntüler hata ayıklama, tire (-) ile gösterilir.


1)
Virtual PC 2007'yi bir Windows XP görüntüsü ile başlatın. İşletim sistemini komut satırı moduna alın.

Başlat -> Çalıştır -> cmd girin ve Enter'a basın.


2)
Hata ayıklama komut seçenekleri için yardım alın ve onaylayın

Konsolda: hata ayıklamayı girin, ardından (?).

Kısa liste tüm takımlar:

bir (bir araya getirin) - Montaj talimatlarının makine koduna çevrilmesi. Varsayılan adres CS: 0100h.

C (karşılaştır) - İki hafıza alanının içeriğinin karşılaştırılması. Varsayılan DS... Komut, ya bölümlerin uzunluğunu ya da adres aralığını belirtir.

D (döküm) - Bellek alanının içeriğini onaltılık ve ASCII formatlarında çıktılayın. Varsayılan DS... Uzunluk veya aralık belirtilebilir.

E (girin) - Makine kodunun verilerini veya talimatlarını belleğe girme. Varsayılan DS.

F (doldur) - Listedeki verilerle hafıza alanını doldurma. Varsayılan DS... Hem uzunluk hem de aralık kullanılabilir.

G (git) - Belirtilen kesme noktasına kadar hata ayıklanmış makine dili programının yürütülmesi. Varsayılan DS... Bu durumda şunlardan emin olunmalıdır: IP geçerli bir adres içerir.

H (onaltılık) - İki onaltılık değerin toplamı ve farkının hesaplanması.

ben (giriş) - Porttan bir bayt okuma ve çıktı alma.

L (yük) - Disk sektörlerinden belleğe dosya veya veri yükleme. ... Varsayılan - CS: 100 saat... Dosya, komut kullanılarak belirtilebilir. n veya başlangıçta bir argüman hata ayıklama.exe.

M (hareket) - Bellek hücrelerinin içeriğinin kopyalanması; varsayılan DS

N (isim) - Komutlar için bir dosya adı belirtme L (YÜK) ve W (YAZ).

O (çıkış) - Çıkış portuna bir bayt gönderme.

P (devam et) - Yönergeleri izleyin CALL, LOOP, INT (döngü, kesme, prosedür) veya tekrarlanabilir bir ön ekli dize ifadesi REPnn sonraki talimata geçilir.

Q (bırak) - İş bitimi hata ayıklama.exe... Test dosyasını kaydetmeden.

R (kayıt) - Kayıtların içeriğinin ve sonraki talimatın çıktısı.

S (arama) - Listeden sembolleri hafızada arayın. Varsayılan DS... Hem uzunluk hem de aralık belirtilebilir.

T (iz) - Programın adım adım yürütülmesi. Takımda olduğu gibi P, varsayılan çifttir CS: IP... Ancak kesintileri gerçekleştirmek için komutu kullanmak daha iyidir P.

U (demonte etme) - Makine kodunun sökülmesi. Varsayılan çift CS: IP.

W (yazmak) - Bir dosyadan yazma hata ayıklama.exe diske. Dosya adını komutla belirtmek zorunludur. n eğer yüklenmediyse.


3)
Karakteristik RAM ve ROM alanlarının dökümlerini alın ve yakalayın

R komutunu yazalım.

Kayıtlar C'ler, DS, ES, SSşu anda başlatıldı 256 baytlık program bölümü önekinin adresi, a çalışma alanı hafızada ile başlayacak bu önek + 100h adresleri.

Talimat seti kuralları:

A) B hata ayıklama.exe harfler büyük/küçük harfe duyarlı değildir.

B) Komutlardaki boşluklar yalnızca parametreleri ayırmak için kullanılır.

C) Girilen sayılar onaltılık gösterimde olmalıdır ve olmadan bitiş mektubu H.

D) Segment ve ofset, iki nokta üst üste kullanılarak biçimde yazılır. segment: ofset.


4)
Hafıza alanını görüntüleyin.

Emretmek NS, bireysel hafıza alanlarının içeriğini görüntülemenizi sağlar.
İş için kullanılabilir belleğin boyutunu kontrol edelim. Bunu yapmak için şunları tanıtıyoruz: 40:13 ve girin.
Ekranda görünen ilk iki bayt, baytlar ters sırada olmak üzere kilobayt ve onaltılık olarak bellek boyutunu içerir. Buna sahibiz: 8002 0280 640 (C)

  • Biçimde soldan gösterilen ilk baytın adresi segment: ofset.
  • Satırın başında belirtilen bayttan başlayan paragrafın (16 bayt) onaltılık gösterimi.
  • ASCII formatında aynı paragrafın karakterleri.


4)
Paralel ve seri portları kontrol etme.


BIOS veri alanının ilk 16 baytı, paralel ve seri bağlantı noktalarının adreslerini içerir. Yazdırılan ilk sekiz bayt, COM1-COM4 seri bağlantı noktalarının adreslerini gösterir. Sonraki 8 bayt, LPT1-LPT4 paralel bağlantı noktası adreslerini gösterir. Bağlantı noktası adresi 78 03 - ters biçimde yazılmıştır.


5)
Klavye kaydının durumunu kontrol etme.


Veri alanında BIOS adrese göre 417h klavye kaydının durumunu saklayan ilk bayt bulunur.


6)
BIOS üretim tarihi kontrolü.


Telif hakkı bilgileri BIOS gömülü ROM BIOS'u adrese göre FE00: 0... Telif hakkı satırı kolayca bulunabilir ASCII-dizi ve seri numarası onaltılık bir sayı biçimindedir. Ekranda yedi haneli bir bilgisayar numarası ve telif hakkı tarihi görüyoruz. Bununla birlikte, telif hakkı satırı uzun olabilir ve çıktı belleği alanına sığmayabilir. Bu durumda, tekrar girmeniz yeterlidir NS.

Tarih şuraya da kaydedilir: ROM BIOS'u adresten başlayarak FFFF: 5... İlgili komutu yürüttükten sonra ASCII-sequence biçiminde yazılmış bu tarihi içerecektir aa / gg / yy.


7)
Makine kodlarına bir örnek.


Makine dilinde bir programın oluşturulmasını, bellekte temsilini ve yürütmenin sonuçlarını ele alalım. Hata ayıklayıcı komutu A (Montaj)çevirir HATA AYIKLAMA montajcı komutlarını alma ve bunları makine kodlarına çevirme moduna.

Artık program hafızada olduğuna göre, çalışmasını kontrol etmeye çalışalım. Öncelikle register ve flagların mevcut durumunu kontrol edelim bunun için komutu giriyoruz r.


IP- kod segmentine göre yürütülecek bir sonraki komutun adres ofsetini içeren bir kayıt C'ler x86 ailesinin işlemcilerinde.

Kayıt olmak IP ile ilişkili C'ler olarak CS: IP, nerede C'ler geçerli kod bölümüdür ve IP- bu segmente göre mevcut ofset.

Kayıt olmak IP 16 bitlik bir işaretçi kaydıdır. Buna ek olarak, bu tür kayıtlar şunları içerir: SP (Yığın İşaretçisi- yığın işaretçisi) ve BP (Temel İşaretçi- temel indeks).

Kayıt müşteri deneyimibaşarıyla geçti ve 8'e eşittir. Segmentler başlatıldı DS, ES, SS, C'ler aynı adres. Kayıt olmak IP içerir 0100 , talimatların 100h uzaklığında yürütüldüğünü gösterir. CS (biz onunla başladık).

Anlam

Açıklama

taşma yok

Yukarı veya Sağ Yön

Kesinti çözünürlüğü

olumlu işaret

sıfır olmayan değer

Ek transfer yok

tek kelime

0 B16 - kod bölümünün adresi.
  • Bu talimata karşılık gelen makine kodu ( B025).
  • Montajcıda yazılmış talimatın kendisi ( HAREKET A L,25 ).

  • 8)
    U (Unmount) hata ayıklayıcı komutu, montaj talimatları için makine kodlarını görüntüler.


    Hadi yürütelim. Görüntülenmesi gereken ilk ve son komutların adreslerini hata ayıklayıcıya bildirmek gerekir (100 ve 107'miz var). Belirtilen aralıktaki talimatlar, montaj dilinde, makine kodlarında ve ayrıca her talimatın adresinde görünecektir. Komutu kullanarak programı adım adım çalıştıralım T.

    Komutu ikinci kez kullanma T, talimatları takip ettik HAREKET... Komut işleneninin makine kodu 00D8... operasyon ekler AL NS BL... Çıkmak için girin Q... Ve yine yaratılanları söküyoruz testpi.com.


    9)
    BIOS'u (С000: 0 ... FFFF: F) bir dosyaya kopyalayın ve daha sonra analiz etmek üzere dosyayı kaydedin.


    Kodu değiştir veya kopyala BIOSüreticinin telif hakkını ihlal edebilir BIOS. BIOS dağıtım için değil, yalnızca kişisel kullanım için kopyalanabilir veya değiştirilebilir. Tipik kopyalama prosedürü BIOS programı kullanmak HATA AYIKLAMA aşağıda. Bu prosedür, 64 KB'lik bölümün tamamını adresten kaydedecektir. F000: 0000hüzerinde F0000: FFFFh.


    Sonuçlar:

    • hata ayıklama.exemontaj ve makine kodu programlarını izlemek ve hata ayıklamak için kullanılabilir.
    • hata ayıklama.exebir programı izlemenize, kesme noktaları belirlemenize, bellek alanlarını görüntülemenize, programları doğrudan bilgisayarın belleğine girmenize olanak tanır.
    • hata ayıklama.exeprogram olarak indirilebilir programları temsil eder .COM.
    • hata ayıklama.exeyalnızca onaltılık sayıları kabul eder.
    • hata ayıklama.exebüyük/küçük harfe duyarlı değildir.

    DOS Debug, orijinal MS DEBUG komutunun işlevselliğini artıran bir hata ayıklama uygulamasıdır. Yalnızca 32-bit bilgisayar mimarileri üzerinde çalışarak, programcılara COM ve diğer yürütülebilir dosyaları teşhis etmek için bir yol sağlayarak, birleştirici ve ayrıştırıcı rolünü oynar.

    Paket, 16 bit uygulamalarda (DEBUG.COM) hata ayıklamaya yönelik bir ikili dosyanın yanı sıra korumalı modda çalışan (DPMI etkin) 16 bit ve 32 bit uygulamalarla uyumlu DEBUGX.COM adlı değiştirilmiş bir sürümü içerir. ).

    Uygulama, komut konsolunda çalışır ve "Yardım" bölümüne erişerek mevcut tüm komutların bir listesini görüntülemenizi sağlar.

    DOS Hata Ayıklama'nın getirdiği ek özellikler arasında, birleştirici ve ayrıştırıcı (işlemci uyumsuzlukları algılandığında sizi bilgilendirebilen), FPU Opcode'ları, 80386+ CPU'ları ve buna bağlı olarak 32 bit kayıt adları için iyileştirmeler bulabilirsiniz.

    Ayrıca, bir onaltılık döküm uygulaması olarak işlev görebilir ve bellek içeriğini analiz etmek, bir dizi adresi karşılaştırmak veya doldurmak, MCB zincirini (DOS bellek kontrol bloğu) görüntülemek için seçenekleri bir araya getirir. Diğer komutlar, belirli disk bölümlerine, bağlantı noktalarına ve bellek sektörlerine erişmenize veya bir programın adını belirlemenize izin verir.

    DEBUG.COM 16-bit bir program olarak çalışır, yani sadece 16-bit uygulamalar üzerinde çalışabilir, ancak geliştirilmiş versiyonu (DEBUGX.COM), 32-bit DPMI programlarının hatalarının ayıklanmasına da izin verir.

    Deneyimli programcılar için tasarlanan DOS Debug, MS DEBUG komutunun yerini alabilecek bir yardımcı program sağlar. Hem 16-bit hem de 32-bit DPMI paketlerini işleyebilir ve belgelerde her komutun ne yaptığının kolay anlaşılmasını sağlayan ayrıntılı fonksiyon açıklamaları içerir.