C.4. CodeView Hata Düzelticisine Genel Bir Bakış
⚠
Uyarı
Kitabın bu kısmı
eski bilgiler içermektedir. Ancak, okuyucunun
yararına olabileceği düşünülerek aynen korunmuştur.
Microsoft
Codeview;
C, Pascal, FORTRAN ve
birleştirici dil programlarının yürütme esnasındaki hatalarını düzeltmek için
kullanılan, kullanımı kolay, etkileşimli bir hata düzelticisidir. C
programcıları için, kaynak dosyaların /Zi
ve /Od
seçenekleri ile derlenip /CO
seçeneğiyle bağlanmaları gerekir. Bir örnek şöyledir:
>CL /c /Zi /Od F1.C >LINK /CO F1
veya,
>CL /Zi /Od F1.C
Bu yolla F1.EXE
dosyası oluşturulduktan sonra, hata
düzelticisini çağırmak için
>CV seçenekler exedosyası argümanlar
yazmak gerekir. Burada, exedosyası derlenip bağlanmış olan programı içeren dosyanın adı, argümanlar hataları düzeltilecek olan programa geçirilecek olan argümanlar ve seçenekler de Codeview seçeneklerinden oluşan bir listedir. Bu seçeneklerden en önemli birkaç tanesi şöyledir:
/2
İki monitör kullan; bir tanesi hata
düzelticisi çıktısı diğeri de program çıktısı için.
/B
Renkli bir adaptör ve monitörde siyah/beyaz
renkler kullan.
/M
Olsa bile, fareyi kullanma.
Codeview’a girildiğinde, seçilebilir menü maddeleri, bir görüntüleme penceresi, bir diyalog penceresi ve isteğe bağlı olarak bir yazmaç içerikleri görüntüleme bölgesinden oluşan bir ekran kullanıcıya sunulur. Hatası düzeltilecek programın ilk birkaç satırı otomatik olarak görüntüleme penceresine konulur. Codeview komutları fare ve/veya klavye aracılığıyla girilebilir. Girdilerin çoğu için fare kullanımı kolay olduğu için, sadece klavye komutları burada anlatılmaktadır. Bazı klavye komutları tek tuşa dayanır; diyalog komutları gibi, bazılarının ise diyalog penceresinden girilmesi gerekir. Aşağıda bazı komutların özet bir listesi verilmiştir. Page Up, Page Down, oklar vs. gibi düzenleme tuşları her zamanki anlamlarını taşırlar.
Ctrl+Home | Programın ilk satırını görüntüle. |
Ctrl+End | Programın son satırını görüntüle. |
F1 | Yardım. |
F2 | Yazmaç penceresi görüntüleme anahtarı. |
F3 | Kaynak kodu, birleştirici kodu veya her ikisini görüntüle. |
F4 | Program çıktı ekranını görüntüle. |
F5 | Eğer varsa, bir sonraki kesilme noktasına kadar, programı yürüt. |
F6 | Değişik pencereler arasında dolaşma anahtarı. |
F7 | İmlecin bulunduğu yere kadar programı çalıştır. |
F8 | Bir izleme komutu çalıştır. |
F9 | Kesilme noktası ver/sil. |
F10 | Bir sonraki kaynak satırını çalıştır (program adım modu). |
Diyalog komutları komut işlenenler
şeklindedir. İşlenenler olarak her tür geçerli C ifadesi
kullanılabilir. Diyalog komutlarında kullanılan diğer işlenenler
aşağıda örneklerle tanıtılmaktadır:
.100 | 100 numaralı satır. (Öndeki noktaya dikkat edin.) |
.X.C:100 | X.C dosyasındaki 100 numaralı satır. |
1000:2000 | kesim: uzaklık şeklinde
bir adres. Kesim isteğe bağlıdır. Rakam gösterimi o andaki sayı sistemine
bağlıdır, fakat varsayılan sistem onaltılıdır. |
AH BH CH DH | Yazmaçların yüksek baytları. |
AL BL CL DL | Yazmaçların düşük baytları. |
AX BX CX DX | 16 bit yazmaçlar. |
CS DS SS ES | 16 bit kesim yazmaçları. |
SP BP IP | 16 bit gösterge yazmaçları. |
SI DI | 16 bit indis yazmaçları. |
EAX EBX ECX EDX | 32 bit yazmaçlar. |
ESP EBP | 32 bit gösterge yazmaçları. |
ESI EDI | 32 bit indis yazmaçları. |
adr1 adr2 | Adr1’den adr2’ye bir adres aralığı. |
BY adres | Adresteki bayt. |
WO adres | Adresteki sözcük. |
DW adres | Adresteki çift sözcük. |
Sıkça kullanılan diyalog komutları, komutun genel şeklinden sonra gelen örneklerle birlikte aşağıda liste şeklinde verilmiştir:
V .100 | Satır 100’ü göster. | ||||||||||||||||||
?ifade,biçim | Belirtilen biçimde ifadenin değerini göster. | ||||||||||||||||||
?A+B,d | Ondalık olarak A+B ’nin değerini göster. | ||||||||||||||||||
?WO SP,x | SP ile gösterilen sözcüğü onaltılı gösterimde göster. | ||||||||||||||||||
XP simge | Simgenin adresini göster. | ||||||||||||||||||
X* | Bütün simgelerin adreslerini göster. | ||||||||||||||||||
R | Bütün yazmaçları göster. | ||||||||||||||||||
MDbiçim adres | Biçim seçimine göre adresten başlayarak 128 bayt dök. | ||||||||||||||||||
MDbiçim adr1 adr2 | Biçim seçimine göre adr1’den adr2’ye kadar dök. Biçim seçimi şöyledir: | ||||||||||||||||||
| |||||||||||||||||||
MC adr1 adr2 adr3 | Adr1’den adr2’ye kadar olan baytları adr3’ten başlayan baytlarla karşılaştırıp farkları göster. | ||||||||||||||||||
MS adr1 adr2 değer | Adres aralığı içinde değeri araştır. | ||||||||||||||||||
MS 100 1000 "isim" | 100-1000 aralığı içinde isimi araştır. | ||||||||||||||||||
MS 100 1000 0A | 100-1000 aralığı içinde onaltılı gösterimde 0A ’yı araştır. | ||||||||||||||||||
BP adr_listesi | Kesilme noktası koy. | ||||||||||||||||||
BC adr_listesi | Kesilme noktasını sil. | ||||||||||||||||||
BP .29 | Satır 29’a kesilme noktası koy. | ||||||||||||||||||
BC 0 8 22 | 0, 8 ve 22 adreslerindeki kesilme noktalarını sil. | ||||||||||||||||||
BC * | Tüm kesilme noktalarını sil. | ||||||||||||||||||
BL | Tüm kesilme noktalarını göster. | ||||||||||||||||||
W?ifade,biçim | İfadenin değerini gözle ve biçimde göster. | ||||||||||||||||||
W | Tüm gözetlemeleri göster. | ||||||||||||||||||
WC * | Tüm gözetlemeleri sil. |