Softice programının özellikleri :

Hafıza okuma / yazmalarında , port okuma / yazmalarında , hafıza aralıklarında ve kesintilerde gerçek zamanlı kesme

Geriye doğru tarih aralıklarını inceleme

Sembolik ve kaynak seviyesinde hata ayıklama

Mevcut hata ayıklayıcı programlarıyla çalışma ortamı

Monokrom sistemler için 640K temel hafızayı yükseltmek için takviye

Herhangi bir anda ekrana gelebilen pencere

Programa müdahale kullanılamaz halde bile tuşlarla dışarı çıkma imkanı

80386 korumalı modu tarafından korumaya alınmış bir hata ayıklayıcı şifre. Bu özellik Softice programının değiştirilmesi veya tahribine yönelik programları önler. Eğer sistem 640K dan fazla hafızaya sahip ise , en düşük 640K seviyesinde hafızanın kullanılmaması için Softice programının kon figüre edilme imkanı .

Kullanımı kolay aktif yardım

Sabit hata ayıklayıcı konumunda kullanma imkanı. Bu özellik eğer hata ayıklayıcı yüklenebilir aygıt sürümleri, kesme denetleyicileri veya gelenekselhata ayıklayıcıların giremediği yeniden açılış sırası için kullanılıyorsa, eğer hata ayıklayıcı programımız yeniden giriş problemleri yaşıyorsa , oldukça faydalıdır.

DOS işletim sistemi olmayan veya kendi kendine yeniden açma programlarının hata ayıklanmasına izin veren yeniden açma özelliği

Basit kurum özelliği, işlemde olmayan I / O portlarının ayarı için DIP anahtarlarının olmaması, ve hafıza adres boşluğu ile anlaşmazlığın olmaması


Sistem Spesifikasyonları :

Softice IBM serileri II. Model 70 ve 80, Compaq 80386 ve 80386SX bilgisayarlarda , AT uyumlu ve 80386 hızlandırıcı kartlarında çalışır. Softice 80386 XT hızlandırıcı sadece olan AT ile uyumlu olarak çalışır. Softice en iyi genişletilmiş hafızalarda çalışır fakat standart hafıza sistemlerinde çalışmasında bir problem yoktur.

Softice görüntü çıkışları ve tuşvuruşu girişleri için DOS veya RAM BIOS kullanmaz. Bu sebepten dolayı görüntü aşağıdakilerden biri ile uyumlu olmalıdır. MDA, Hercules, CGA , EGA , veya VGA , Softice aynı zamanda görüntü yoğunluğu fazla olan programların hata ayıklamasında çok faydalı olabilecek iki monitör konfigrasyonunu destekler.

SOFTICE EKRANI VE HATA AYIKLAMA

SoftICE 'taki tüm etkileşim, herhangi bir zamanda açılabilen bir pencere aracılığı ile olur. Tüm SoftICE komutları küçük bir pencereye sığabilir, ancak pencere tüm ekranı kaplayacak şekilde büyütülebilir. SoftICE 'ı başka bir hata ayıklayıcıya yardımcı olarak kullanacağınız zaman küçük pencereyi, SoftICE' ı tek başına kullanacağınız zaman ise büyük pencereyi kullanırsınız.

Eğer dağıtım disketinde yer alan SoftICE kuruluş dosyasını (S-ICE.DAT) kullanırsanız, pencere ilk açıldığında tam ekran modunda gelecektir.

Pencereyi Açma ve Kapama

SoftICE 'ı yükledikten sonra, istenen herhangi bir zamanda pencereyi açabilirsiniz. SoftICE' ı CTRL D tuşlarına basarak çalıştırabilirsiniz. Bununla birlikte bu sıra, ALTKEY komutunun kullanımı ile değiştirilebilir. X komutunun kullanımı ile veya SoftICE'ı çağırmak için kullandığınız tuş sırası ile, asıl görüntüye geri dönülür. SoftICE 'ta çalışırken ayarladığınız tüm kesme noktaları bu noktada iptal olacaktır.

Pencere Boyutunu Değiştirme

SoftICE penceresinin hem genişliğini hem de yüksekliğini değiştirebilirsiniz. Pencere boyutunu değiştirme, tek başına kullanım modunda kod belleğini görüntülediğiniz zaman kullanışlıdır. Pencere yüksekliği, 8 ile 25 satır uzunluğu arasında değişebilir. Pencerenin yüksekliğini değiştirmek için aşağıdaki tuş sırasını kullanın:

ALT UP : Pencerenin boyunu uzatır.

ALT DOWN : Pencerenin boyunu kısaltır.

WIDE (Geniş) mod : Tam ekran genişliği.

NARROW (Dar) mod : 46 karakter genişliği.

Pencereyi Taşıma

SoftICE penceresi hareketlidir ve ekranda herhangi bir yere konumlandırılabilir. Bu durum özellikle pencerenin dar modda kullanıldığı durumda faydalıdır. Pencereyi, bilgiyi görme ihtiyacı duyduğunuz herhangi bir zamanda, ekranda pencerenin gerisinde taşıyabilirsiniz. Aşağıdaki tuş kombinasyonları pencereyi hareket ettirirler:

CTRL UP : Pencereyi bir satır yukarı kaydırır.

CTRL DOWN : Pencereyi bir satır aşağı kaydırır.

CTRL RIGHT : Pencereyi bir sütun sağa kaydırır.

CTRL LEFT : Pencereyi bir sütun sola kaydırır.

Satır Düzenleme Tuşları

SoftICE 'ın kolay kullanımlı satır editörü, önceki komutları yeniden çağırıp düzenlemenize izin verir. Satır düzenleme fonksiyonları, popüler CED satır editöründekilere benzerdir. Aşağıdaki tuşlar, komut penceresindeki komutları düzenlemenize yardımcı olur.

LEFT : İmleci sola götürür.

RIGHT : İmleci sağa götürür.

INS : Araya girme modunu değiştirir.

DEL : Üzerinde bulunulan karakteri siler.

HOME : İmleci satırın başına götürür.

END : İmleci satırın sonuna götürür.

UP : Bir önceki komutu gösterir.

DOWN : Bir sonraki komutu gösterir.

SHIFT : Görüntüyü bir satır yukarı kaydırır.

SHIFT : Görüntüyü bir satır aşağı kaydırır.

PAGE UP : Görüntüyü bir sayfa yukarı kaydırır.

PAGE DN : Görüntüyü bir sayfa aşağı kaydırır.

BKSP. : Bir önceki karakteri siler

ESC : O andaki komutu iptal eder.

İmleç veri penceresinde veya kod penceresinde iken, bazı özel tuş atamaları bulunmaktadır. Bunlar, E ve EC komutlarının ilgili bölümlerinde tarif edilmiştir. Bir özel atamada, imleç kod penceresinde iken SHIFT UP ve SHIFT DOWN tuşlarındadır. Bu tuşlara yeniden atama yapılarak bunların normalde UP ve DOWN tuşlarının işlevine sahip olması sağlanır. Böylece imleç kod penceresinde iken, önceki komutları yeniden çağırabilirsiniz.

Etkileşimli Durum Satırı

Pencerenin en altındaki durum satırı, komut kullanımları ile etkileşimli yardım olanağı sağlar.

Komut Kullanımları

SoftICE, komut tabanlı bir hata ayıklama aracıdır. SoftICE' la iletişim kurmak için, isteğe göre parametrelerle değiştirilebilen komutları girmelisiniz. Tüm komutlar, küçük / büyük harf ayrımı olmaksızın 1 ile 6 karakter uzunluğundaki yazı dizinlerinden oluşmaktadır. Tüm parametreler, ASCII dizinleri veya ifadelerdir. İfadeler genelde sayılardır, fakat sayıların ve matematiksel işlemlerin birleşmesinden de oluşabilir. (örn, + - / *) Bütün sayılar hexadecimal formatta görüntülenmektedir. Bit (byte) parametreleri 2 rakam, kelime (word) parametreleri 4, çift kelime (double word) parametreleri 2 kelime parametresi uzunluğundadır ve : işareti ile ayrılır.

Bazı parametrelere örnekleri ;

12 : Bit parametresi

10FF : Kelime parametresi

E000:0100 : Çift kelime parametresi

Kayıtlar (Register) bir ifadede bitler veya kelimeler olarak yer alırlar. Örnek olarak;

'U CS:IP-10' komutu, ayırma (unassembling) talimatını şu anda bulunulan talimat gösterge adresinin 10 bit öncesinden itibaren başlatır. İzleyen kayıt isimleri ifadelerde kullanılabilir: AL, AH, AX, BL, BH, BX, CL, CH, CX, DL, DH, DX, DI, SI, BP, SP, IP, CS, DS, ES, SS, veya FL

Bellek Adreslerini Belirleme

SoftICE komutlarının çoğu bellek adreslerini parametre olarak ister. Bellek adresi, : işareti ile ayrılmış 2 tane 16-bitlik kelimeden oluşan bir değerdir. İlk kelime, segment adresi, ikinci kelime segment ofsetidir. Herhangi bir SoftICE komutunda, adreslerin yerine genel semboller kullanılabilir. Genel semboller, SoftICE program yükleyicisi (LDR.EXE) ile mutlaka yüklenmiş olmalıdır. Genel sembollerin kullanımı ile ilgili tam açıklama için Bölüm 7 (Semboller ve Kaynak) 'ye bakınız. SoftICE ifade değerlendiricisi, adreslerle birlikte bir çok özel karakteri tanır. Bu özel karakterler şunlardır :

$ : Şimdiki CS:IP.

@adres : Çift Kelime Yönlendirme

numara : Kaynak Satır Numarası

Örnekler :

U.1234 : Bu komut ayırma talimatını 1234 (ondalık sayı olarak) no.lu kaynak satırından başlatır.

U $-10 : Bu komut, şimdiki işlem gösterge talimatından 10 bit önceki talimattan başlayarak ayırır.

G @SS:SP : Kesme rutininin ilk talimatında olduğunuzu düşünün. Bu komutun girilmesi yığındaki dönüş adresine geçici bir kesme noktası atanmasını ve kesme rutininin geçilmesini sağlar.

SoftICE Yardım

Help:Help komutu kısa bir tanımlama, kullanım biçimi ve her komut için bir örnek görüntüler.

? veya H : Tüm komutlar ve de işlemlerle ilgili kısa açıklama görüntüler.

? komut veya H komut :Belirtilen komutla ilgili daha detaylı bilgi, kullanımı ve bir örnek görüntüler.

? ifade veya H ifade : İfadenin hexadecimal, ondalık veya ASCII olarak değerini görüntüler.

SOFTICE VE KESMELER

Tanıtım

SoftICE, geleneksel olarak sadece donanım hata ayıklayıcılarında bulunan kesme noktası kapasitesine sahiptir. 80386 çiplerinin gücü ve esnekliği, ilave donanım olmadan kesme noktası kapasitesinin geliştirilmesine izin verir.

Kesme noktaları okuma yazma bellek konumlarında, okuma yazma belek sınırlarında, program çalışmasında ve port erişimlerinde ayarlanabilirler. SoftICE her kesme noktasına bir basamaklı hexadecimal sayı (0-F) atar. Bu kesme-numarası, kesme noktalarını silmek, kapatmak, aktif etmek veya düzenlemek istediğinizde kullanılırlar. Tüm SoftICE kesme noktaları zorludur. Bu, kullanıldıktan sonra otomatik olarak iptal edilemeyeceklerini gösterir. BC veya BD komutlarını kullanırken, özellikle temizlemeli veya iptal etmelisiniz. SoftICE, bir seferde 16 kesme noktasını işleyebilir. 80386 işlemcilerinin kısıtlamaları nedeniyle sadece 4 adet kullanabileceğiniz bellek konumundaki (BPM ler) kesme noktaları haricinde tek tipte 10 kesme noktanız olabilir. Kesme noktaları sayaç parametreleri ile belirtilebilirler. Sayaç parametresi SoftICE 'a, kesme noktasının, işleme geçmeden önce kaç defa yok sayılacağını söyler.

Kesme Noktalarını Ayarlama

BPM, BPMB, BPMW, BPMD Bellekteki veya çalışmadaki kesme noktalarını ayarlar

BPR Bellek sınırlarındaki kesme noktasını ayarlar

BPIO I/O port erişimindeki kesme noktasını ayarlar

BPINT Kesintilerdeki kesme noktalarını ayarlar

BPX Çalışma sırasındaki kesme noktasını ayarlar veya temizler

CSIP CS:IP aralığındaki nitelikleri ayarlar.

BPAND Birden fazla kesme noktasının çalışmasını bekler

Bellekteki veya çalışmadaki kesme noktalarını ayarlama

Kullanılışı :

BPM[boyut]address[eylem][nitelik değeri][C=sayaç]

Boyut : B(bit), W(kelime), D(çift kelime)

Eylem :

R, W, RW, veya X

Nitelik :

EQ(eşit), NE (eşit değil), GT (den büyük), LT (den küçük),

M (Maskeleme)

Yorumlar :

BPM komutu, bellek okuma, yazma veya çalıştırma sırasındaki bir kesme noktasını ayarlamanıza izin verir. Eğer eylem komutu belirtilmemişse, RW seçilen değerdir. Eğer boyut belirlenmemişse, bit seçilen değerdir. X dışındaki tüm eylem komutları kesme komutunun olduğu işlemin çalıştırılmasına neden olur. Bu durumda şimdiki CS:IP, kesme noktasından sonraki işlem olacaktır. Eğer eylem tipi X ise, şimdiki CS:IP kesme noktasının ayarlandığı işlem olacaktır.

Eğer R belirlenmişse, kesme noktası okuma erişiminde ve bellek konumunu değiştirmeyen yazma işlemlerinde oluşur. Eğr eylem tipi R, W veya RW ise, belirtilen adresteki işlemi çalıştırmayla kesme noktası eyleminin gerçekleşmesine yol açmaz.

Kesme Noktalarını Yönetme

SoftICE kesme noktalarını yönetmek için çeşitli komutlar sunar. Yönetim komutları kesme noktalarını listelemeyi, değiştirmeyi, silmeyi, aktif ve pasif hale geçirmeyi sağlar. Kesme noktaları 0 dan F e hexadecimal basamaklardan oluşan kesme numaraları ile tanımlanır. Kesme noktası yönetim komutları şunlardır :

BC Kesme noktalarını temizleme

BD Kesme noktalarını pasifleştirme

BE Kesme noktalarını aktifleştirme

BL Kesme noktalarını listeleme

BPE Kesme noktalarını düzenleme

BPT Kesme noktasını geçici değer olarak kullanma

Örnek :

BL

Bu komut tanımlanan tüm kesme noktalarını görüntüler. Dört kesme noktasını listeleyen bir örnek görüntü aşağıdadır :

0) BPMB 1234:0000 W EQ 0010 C=03

1)*BPR B000:0000 B000:1000 W C=01

2) BPIO 0021 W NE 00FF C=01

3) BPINT 21 AH=4C C=01

BC komutu bir veya daha çok kesme noktalarını silmek için kullanılır.

Örnek :

BC *

Bu komut tüm kesme noktalarını temizler.

SOFTICE HATA MESAJLARI :

Devam etmek için 'C' ye veya Softice' ye dönmek için 'R' tuşuna basın

Softice hata sebebiyle (06, 0C, 0D, 0E ) ekrandan çıktı. Softice'ye geri dönmek için R tuşuna basın. Hatayı Windows hata düzelticisine aktarmak için C tuşuna basın.

Softice aktif değil

Bu mesaj, Softice aktif olmadığı zaman monochrome ve seri ekran gösterimlerinde yardım hattı üzerinde görülür.

Belirtilen isim bulunamadı

Geçersi tablo - ismi içeren TABLE kelimesin yazdınız. Geçerli tablo - isim listesini görmek için TABLE kelimesini parametresiz olarak yazınız.

Tüm kesme saklamaları kullanıldı, sadece RAM 'da kullan

ROM' da bir BPX kesme noktası oluşturmaya çalışıyordunuz ve bütün hata ayıklayıcı saklayıcılar hali hazırda kullanıldı. BPX INT 3 yöntemini kullandığı için RAM ' da hala çalışacaktır. Bu çalışmadan önce BPM tipi kesme noktalarından birisini temizlemeliyiz.

Seri aygıta bağlama başarısızlıkla sonuçlandı
Başlangıç seri haberleşme sırası başarısızlıkla sonuçlandı. Bu yanlış seri port seçiminden dolayı olabilir, hedef makinesi SERİAL:EXE 'yi çalıştıramıyor veya seri kablo hatalı.

KBPM kesme sınırı aşıldı

X86 işlemcilerinden kaynaklanan kısıtlamalardan dolayı sadece 4 BPM türü kesme noktalarına izin verilir. Bu çalışmadan önce BPM türü kesme noktalarından bir tanesini siliniz.

BPMD adresi Dword sınırında olmalıdır
BPMD ' de belirtilen adres Dword sınırında çalışmadı. Bir Dword sınırı sıfıra eşit iken en az önemli adres bilgisine sahip olmalıdır.

BPMD adresi Word sınırında olmalıdır
BPMD 'de belirtilen adres Word sınırında çalışmadı. Bir Word sınırı sıfıra eşit iken en az önemli adres bilgisine sahip olmalıdır.

Softice dahilinde kesme noktalarına izin verilmedi
Softice kodunda kesme noktaları ayarı yapamazsınız.

Hata kaydedici saklayıcısı hali hazırda kullanılmakta
BPM komutunda belirtilen hata ayıklayıcı saklayıcısı, önceki BPM komutunda hali hazırda kullanılmıştır.

Adres değil beklenen değer
İfade değerlendirici işlem gören bilgileri adresler ve değerler olarak geniş bir değerlendirmeye tabii tutar. Adresler, adres düz olsa bile ayırıcı / parça ve ofset bileşenine sahiptir. * ve / gibi bazı operatörler adres değil sadece sade değerler beklerler ve onların adres üzerindeki kullanımı bu mesajı ortaya çıkarır. Bazı durumlarda dolaylı operatörlerin kullanımı bir adres üretir.

İfade ?? ne ifadesi ?

İfade değerlendirici değerlendirecek herhangi bir şey bulamadı. Şu hemen belirtilmelidir ki , Softice ' nin bazı eksik versiyonlarında ? komutu yardım istemek için kullanılırdı. Bu şu anda geçerli bir durum olmayıp, H komutunu ( F1 ) kullanınız.

Softice'de XXXXX adresinde ve XXXXX ofsetinde Int0D hatası

Hata Kodu : XXXX (veya aşağıdaki mesaj )

Softice 'de XXXXX adresinde ve XXXXX ofsetinde Int0E hatası

Hata Kodu : XXXX

Bu iki mesaj Softice 'nın kendi iç hatalarıdır. Softice içindeki kod ya genel koruma hatasına (OD ) yada bir sayfa hatasına ( OE ) sebep olmuştur. Ofset hataya sebep olan kodun içindeki bir ofsettir. Bu mesajlar aynı zamanda saklayıcılarda ki değerleri de ekranda gösterirler.

Geçersiz hata ayıklayıcı saklama

3' den büyük bir BPM hata ayıklama saklayıcısı belirlendi. Geçerli hata ayıklayıcı saklayıcılar DRO , DR1, DR2, ve DR3 'tür.

Bu sıra numarasında kod yok

Komutta belirtilen sıra sayısı onula bağlantılı bir koda sahip değildir.

Mevcut kaynak dosyası yok

SS komutu girdiniz ve ekranda şu anda kaynak dosyası yoktur.

Dosya bulunamadı

Mevcut sembol tablosu ona ait herhangi bir kaynak dosyasına sahip değil.

Yerel kümeleme yok

LHEAP komutu yerel kümelemesi olmayan bir ayırıcı belirledi.

Daha fazla Watch izin yok

Maksimum 8 watch değişkenine izin verilir.

Hala devam eden arama yok

Parametreleri olmayan bir S komutu belirlediniz ve halen devam eden bir arama yok. Öncelikle bir adresi ve parametreleri için veri listesi olan bir S belirleyiniz. Veri listesinin ardışık oluşumları için tarama yapmak için S komutunu parametreleri olmadan kullanın.

Boyut yok

Bir A komutu sırasında , makine dili bilgi kelime veya çift kelime kullanmak isteyip istemediğinizi belirleyemiyor.

Sembol tablosu yok

SYM, SS veya FILE komutlarını girdiniz ve şu anda semboller mevcut değil.

TSS yok

Sistemde geçerli iş durum segmenti olmadan TSS komutunu girdiniz.

Sadece kaynak modunda geçerli

SS komutunu karışık veya kod modunda kullanamazsınız.

Sayfa mevcut değil

Belirtilen adres mevcut olmayan sayfa tablolarında işaretlendi. Softice bilgiye ulaşmaya çalışırken , işaretlenen veya olmayan bir sayfada hafızaya ulaştı.

Parametre yanlış boyutta

Girdiğiniz komutlardaki parametrelerden bir tanesi yanlış boyutta. Örneğin, EB veya BPMB komutlarını bilgi değeri yerine kelime değeri olarak kullanırsanız.

Patern bulunamadı

Veri listesinin taranmasında S komutu herhangi bir karşılık bulamadı.

Sembol tanımlanmadı (mysymbol)

Mevcut olmayan bir sembol kullandınız. Mevcut sembol tablosundaki sembollerin listesine ulaşmak için SYM komutunu kullanın.

Numega Softice Referance bölümünden alıntıdır.

1