Uzycie SoftICE.pdf

(1221 KB) Pobierz
Uzycie SoftIce.doc
1. Witamy w SoftICE
SoftICE jest dostępny dla Windows 95, Windows 98 i Windows NT. SoftICE składa się z debugger jądra
systemu operacyjnego SoftICE i narzędzia Symbol Loader. Debugger SoftICE (SoftICE) jest zaawansowanym.
Debuggerem, który może debugować praktycznie dowolny typ kodu wliczając w to podprogram przerwań,
poziom zmian procesora i sterowniki I/O. Symbol Loader ładuje debuggowaną informację z twojego modułu
do SoftICE, utrzymuje ustawienia inicjujące SoftICE i pozwala Ci zachować zawartość historii bufora w pliku.
Poniższa sekcja krótko opisuje SoftICE i Symbol Loader.
O SoftICE
SoftICE łączy w sobie moc debuggera sprzętowego z łatwym do stosowania debuggerem symbolicznym.
Sprzętowo dostarcza punktów przerwań i trwałych punktów przerwań, które podążają za pamięcią ponieważ
system operacyjny pozbywa się, przeładowuje i wymienia strony. SoftICE wyświetla twój kod źródłowy jako
zdebuggowny i pozwala ci uzyskać dostęp do twoich lokalnych i globalnych danych poprzez ich nazwy
symboliczne..
Kilka z głównych korzyści jakich dostarcza SoftICE :
Debuggowanie 32 bitowych aplikacji (Win32) z poziomu źródła, sterowników Windows NT (oba, tryb
jądra i użytkownika), sterowniki Windows 95 i Windows 98, VxD’y, 16 bitowe programy
windosowskie i programy DOS
Debuggowanie praktycznie każdego kodu, wliczając w to podprogramy przerwań i jądra Windows 95,
Windows 98 i Windows NT
Ustawienie w czasie rzeczywistym przerwań na odczyt / zapis pamięci, zapis / odczyt portu i przerwań
Ustawienie punktów przerwań na wiadomościach Windows
Wyświetlenie mijającego czasu wyzwolenia przerwania przy użyciu licznika zegara Pentium
Debuggowanie jądra systemu operacyjnego na jednej maszynie
Wyświetlenie informacji wewnętrznych Windows 95, Windows 98 i Windows NT takich jak:
- Informacja o zakończonych wątkach i procesach
- Wirtualne odwzorowanie procesu w pamięci
- Punkty wejścia do jądra
- Katalog obiektów Windows NT
- Komplet sterowników obiektu i urządzeń obiektu
- Sterta Win32
- Ramki Strukturalnej Obsługi Wyjątków (SEH)
- Eksportów DLL
Użycie polecenia WHAT do identyfikacji nazwy lub wyrażenia, jeśli ocenia znany typ
Wyskakujący ekran SoftICE automatycznie kiedy wystąpi nie obsługiwany wyjątek
Użycie SoftICE do połączenia poprzez modem do oddalonego użytkownika. Pozwala to zdiagnozować
problem tego użytkownika, taki jak krach systemu
Wsparcie rozszerzonego zbioru instrukcji MMX
Tworzenie zdefiniowanych przez użytkownika makr
Jak jest implementowany Debugger SoftICE
SoftICE dla Windows 95, Windows 98 i Windows NT jest implementowany na odrobinę różne sposoby.
SoftICE dla Windows 95 i Windows 98 zawiera dwa Vxd’y a SoftICE dla Windows NT zawiera dwa sterowniki
jądra jak pokazano:
================================================================================
Windows 95, Windows 98
Windows NT
Opis
(VxD) (Sterownik jądra NT)
================================================================================
WINICE.EXE NTICE.SYS Dostarcza debugger
SIWVID.386 SIWVID.SYS Dostarcza wsparcia video dla PC
================================================================================
Notka: SoftICE dla Windows NT musi być załadowany przed systemem operacyjnym Windows NT ponieważ
jest implementowany jako sterownik. Dlatego też, nie możesz debuggować następujących rzeczy w Windows
NT: żadnego sterownika startowego podprogramu DricverEntry, kodu inicjalizującego HAL i NTOSKRNK, i
żadnego loadera Windows NT lub kodu NTDETECT
Interfejs użytkownika SoftICE
SoftICE dostarcza spójnego interfejsu do debuggowania aplikacji na wszystkich platformach. Interfejs
użytkownika SoftICE jest zaprojektowany do bycia funkcjonalnym bez narażania systemu na błędy w
oprogramowaniu. Dla SoftICE wyskakuje bez niepokojenia stanu systemu, musi uzyskać dostęp bezpośredni do
sprzętu wykonując swoje I/O. W związku z tym SoftICE używa pełnoekranowego zorientowanego znakowo
wyświetlacza, jak następuje:
O Symbol Loader’ze
Symbol Loader jest graficznym narzędziem które wydobywa informacje symboliczne z naszych sterowników,
EXE’ków, DLL’li, OCX’ów i dynamicznych i statycznych VxD’eków i ładuje do SoftICE. To narzędzie
pozwoli ci na następujące rzeczy:
Dopasować typ i ilość informacji ładowanej odpowiednio do Twoich wymagań debuggujących
Automatyczny star aplikacji i ustawienie punktu zatrzymania przy jej punkcie wejścia
Zachować swoją sesję debuggowania do pliku
Poniższy rysunek ilustruje Symbol Loader
11607844.001.png
Symbol Loader również wspiera interfejs linii poleceń, który pozwala nam użyć wiele z jego cech pod DOS.
Zatem możesz zautomatyzować wiele popularnych zadań jakie wykonujesz. Dodatkowo. SoftICE dostarcza
oddzielnego narzędzia linii poleceń (NMSYM), które pozwala nam zautomatyzować tworzenie informacji
symbolicznych z pliku wsadowego
2. Samouczek SoftICE
Wprowadzenie
Ten samouczek da ci doświadczenie debuggowania aplikacji Windows, nauczysz się podstawowych kroków dla
debuggowania aplikacji i sterowników. Podczas tej sesji debuggowania nauczysz się jak wykonać:
Ładowanie SoftICE
Budowanie aplikacji
Ładowanie źródłowej aplikacji i plików symboli
Śledzenie i przejście krokowe poprzez kod źródłowy i język asemblera
Pokazanie danych lokalnych i struktur
Ustawienie punktów przerwań „wskaż i wybierz”
Użycie poleceń informacyjnych SoftICE do zgłębienia stanu aplikacji
Pracy z symbolami i tablicą symboli
Modyfikacji punktów przerwań używając wyrażeń warunkowych
Każda sekcja w tym samouczku bazuje na poprzedniej sekcji, wić powinieneś wykonywać je po kolei.
Ten samouczek używa aplikacji GDIDEMO jako podstawy. GDIDEMO dostarcza demonstracyjnej
funkcjonalności GDI. GDIDEMO jest ulokowane w katalogu \EXAMPLES\GDIDEMO na twoim CD-ROM.
Jeśli użyjesz GDIDEMO na CD-ROM, skopiuj go na twardy dysk.
Możesz zastąpić ją różne przykłady aplikacji lub aplikacjami swojego własnego pomysłu. Zasady
debuggowania i cechy SoftICE użyte w tym samouczku stosuje się do większości aplikacji.
11607844.002.png
Notka: Przykłady w tym samouczku są oparte na Windows NT. Jeśli używasz Windows 95 lub Windows 98,
nasze dane wyjściowe mogą się różnić.
Ładowanie SoftICE
Jeśli uruchomiłeś SoftICE pod Windows 95, Windows 98 lub pod Windows NY w trybie bootowalnym,
systemowym lub automatycznym, SoftICE automatycznie załaduje się kiedy zestartujesz swój PC. Jeśli
uruchomiłeś SoftICE w trybie ręcznym pod Windows NT, SoftICE nie załaduje się automatycznie.
Ładowanie SoftICE dla Windows 95 lub Windows 98 wprowadza polecenie WINICE
Lądowanie SoftICE dla Windows NT:
Wybierz START SOFTICE
Wprowadź polecenie NET START NTICE
Notka: Po załadowaniu SoftICE, nie możesz dezaktywować go dopóki nie przeładujesz PC
Dla sprawdzenia czy SoftICE jest załadowany naciśnij sekwencję klawisz Ctrl+D. Powinien się pojawić ekran
SoftICE. Aby powrócić do Windows’a użyj X (exit) lub G (go to) polecenia (F5)
Budowanie przykładowej aplikacji GDIDEMO
Pierwszym krokiem w przygotowaniu aplikacji Windows do debuggowania jest zbudowanie jej z informacjami
debuggujacymi. Plik make dla przykładowej aplikacji GDIDEMO jest już ustawiony do tego celu.
Budując aplikację przykładową wykonamy następujące kroki:
1. Otwieramy powłokę DOS
2. Zmieniamy katalog, który zawiera przykładowy kod
3. Wykonujemy polecenie NMAKE:
C:\MSTOOLS\SAMPLES\WIN32\GDIDEMO > NMAKE
Jeśli GDIDEMO jest umieszczony w innym katalogu , zmień ścieżkę na właściwą
Ładowanie przykładowej aplikacji GDIDEMO
Załadowanie aplikacji pociąga za sobą stworzenie pliku symbolicznego z informacji debuggowanej aplikacji i
załadowanie tych symboli i pliku źródłowego do SoftICE. Ładując aplikację GDIDEMO wykonujemy
następujące kroki:
1. Startujemy Symbol Loader
Pojawi się okno Symbol Loader’a
11607844.003.png
2. Wybieramy albo Open Module z menu File albo klikamy na przycisk Open
Pojawi się okienko Open
3. Znajdujemy GDIDEMO.EXE i klikamy Open
4. Wybieramy albo Load z menu Module albo klikamy przycisk Load dla załadowania GDIDEMO
Symbol Loader tłumaczy informacje debuggujące do pliku symbolicznego .NMS, ładuje te symbole i plik
źródłowy., startuje GDIDEMO, wyskakuje ekran SoftICE i wyświetlany jest kod źródłowy dla pliku
GDIDEMO.C
Sterowanie ekranu SoftICE
Ekran SoftICE jest twoją centralą do podglądania i debuggowania kodu. Dostarcza do siedmiu okien i jednej
linii pomocy i steruje różnymi aspektami twoje sesji debuggującej. Domyślnie wyświetla co następuje:
* Local window- wyświetla i rozwija zmienne zaalokowane na stosie
* Code window – wyświetla kod źródłowy lub niezasemblowane instrukcje
* Command window – wprowadzanie poleceń użytkownika i wyświetlanie informacji
* Linia pomocy – dostarcza informacji o poleceniach SoftICE i pokazuje kontekst aktywnych adresów
1.Spójrz na skład Code window. Zauważ, że SoftICE wyświetla podprogram WinMain w linii 34. Domyślnie
SoftICE tworzy punkt przerwania i zatrzymuje w pierwszym głównym module gdzie go napotka kiedy ładuje
twoją aplikację
2.Zobacz wszystkie pliki źródłowe, które ładuje SoftICE, wprowadź polecenie FILE ze znakiem zastępczym:
:FILE *
SoftICE wyświetli pliki źródłowe dla GDIDEMO: draw.c, maze.c, xform.c, poly.c, wininfo.c, dialog.c, init.c,
bounce.c i gdidemo.c. Command window różni się rozmiarowo w zależności od liczby lini używanych przez
otwarte okna, wić możesz nie widzieć wszystkich tych nazw. Aby wyświetlić pozostałe nazwy naciśnij dowolny
klawisz.
3.Wiele okien SoftICE może być przewijanych . Jeśli masz myszkę, możesz kliknąć na strzałce przewijania.
Jeśli nie, SoftICE dostarcza sekwencji klawiszy, które pozwolą ci przewinąć określone okno. Spróbuj tych
metod do przewijania Code window:
11607844.004.png
Zgłoś jeśli naruszono regulamin