Standart C Programlama Dili


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:

C:\>CL /c /Zi /Od F1.C
C:\>LINK /CO F1

veya,

C:\>CL /Zi /Od F1.C

Bu yolla F1.EXE dosyası oluşturulduktan sonra, hata düzelticisini çağırmak için

C:\>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 konur. 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.

control+homeProgramın ilk satırını görüntüle.
control+endProgramın son satırını görüntüle.
f1Yardım.
f2Yazmaç penceresi görüntüleme anahtarı.
f3Kaynak kodu, birleştirici kodu veya her ikisini görüntüle.
f4Program çıktı ekranını görüntüle.
f5Eğer varsa, bir sonraki kesilme noktasına kadar, programı yürüt.
f6Değişik pencereler arasında dolaşma anahtarı.
f7İmlecin bulunduğu yere kadar programı çalıştır.
f8Bir izleme (trace) komutu çalıştır.
f9Kesilme noktası (breakpoint) ver/sil.
f10Bir sonraki kaynak satırını çalıştır (program adım [step] 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:

.100100 numaralı satır. (Öndeki noktaya dikkat edin.)
.X.C:100X.C dosyasındaki 100 numaralı satır.
1000:2000kesim: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 DHYazmaçların yüksek baytları.
AL BL CL DLYazmaçların düşük baytları.
AX BX CX DX16 bit yazmaçlar.
CS DS SS ES16 bit kesim yazmaçları.
SP BP IP16 bit gösterge yazmaçları.
SI DI16 bit indis yazmaçları.
EAX EBX ECX EDX32 bit yazmaçlar.
ESP EBP32 bit gösterge yazmaçları.
ESI EDI32 bit indis yazmaçları.
adr1 adr2Adr1’den adr2’ye bir adres aralığı.
BY adresAdresteki bayt.
WO adresAdresteki sözcük.
DW adresAdresteki ç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 .100Satır 100’ü göster.
 
?ifade,biçimBelirtilen biçimde ifadenin değerini göster.
?A+B,dOndalık olarak A+B’nin değerini göster.
?WO SP,xSP ile gösterilen sözcüğü onaltılı gösterimde göster.
 
XP simgeSimgenin adresini göster.
X*Bütün simgelerin adreslerini göster.
RBütün yazmaçları göster.
 
MDbiçim adresBiçim seçimine göre adresten başlayarak 128 bayt dök.
MDbiçim adr1 adr2Biçim seçimine göre adr1’den adr2’ye kadar dök. Biçim seçimi şöyledir:
AASCII karakter
BBayt
CProgram kodu
ITamsayı (2 bayt)
IUİşaretsiz tamsayı
LUzun tamsayı (4 bayt)
RKısa kayan noktalı sayı (4 bayt)
RLUzun kayan noktalı sayı (8 bayt)
RT10-baytlık kayan noktalı sayı
 
MC adr1 adr2 adr3Adr1’den adr2’ye kadar olan baytları adr3’ten başlayan baytlarla karşılaştırıp farkları göster.
 
MS adr1 adr2 değerAdres aralığı içinde değeri araştır.
MS 100 1000 "isim"100-1000 aralığı içinde “isim”i araştır.
MS 100 1000 0A100-1000 aralığı içinde onaltılı gösterimde 0A’yı araştır.
 
BP adr_listesiKesilme noktası koy.
BC adr_listesiKesilme noktasını sil.
BP .29Satır 29’a kesilme noktası koy.
BC 0 8 220, 8 ve 22 adreslerindeki kesilme noktalarını sil.
BC *Tüm kesilme noktalarını sil.
BLTüm kesilme noktalarını göster.
 
W?ifade,biçimİfadenin değerini gözle ve biçimde göster.
WTüm gözetlemeleri göster.
WC *Tüm gözetlemeleri sil.