Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Obraz jest plikiem wykonywalnym, biblioteką DLL lub sterownikiem, który system Windows załadował w ramach procesu trybu użytkownika lub jądra. Plik, z którego załadowano obraz, jest określany jako jego plik obrazu.
Aparat debugera buforuje listę modułów dla każdego procesu (lub, w trybie jądra, proces wirtualny). Zazwyczaj każdy moduł na tej liście reprezentuje obraz w procesie. Listę modułów silnika można zsynchronizować z celem przy użyciu Załaduj ponownie.
Uwaga W debugowaniu w trybie jądra lista modułów silnika dla procesu wirtualnego zawiera zarówno moduły trybu jądra całego systemu, jak i moduły użytkownika bieżącego procesu.
Moduł może być określony przez jego adres podstawowy w wirtualnej przestrzeni adresowej obiektu docelowego lub przez jego indeks na liście modułów, które aparat utrzymuje dla obiektu docelowego. Indeks modułu jest równy swojej pozycji na liście modułów, dlatego ten indeks zmieni się, jeśli moduł o niższym indeksie zostanie zwolniony. Wszystkie moduły rozładowane mają indeksy; są one zawsze wyższe niż indeksy załadowanych modułów. Adres podstawowy modułu nie zmieni się tak długo, jak pozostanie załadowany; w niektórych przypadkach może ulec zmianie, jeśli moduł zostanie zwolniony, a następnie ponownie załadowany.
Indeks jest liczbą z zakresu od zera do liczby modułów w docelowym minus jeden. Liczbę modułów w bieżącym procesie można znaleźć, wywołując polecenie GetNumberModules.
Indeks może służyć do znajdowania adresu podstawowego przez wywołanie metody GetModuleByIndex. Podstawowy adres modułu, który jest właścicielem symbolu o podanej nazwie, można znaleźć przy użyciu polecenia GetSymbolModule.
Następujące metody zwracają zarówno indeks, jak i adres podstawowy określonego modułu:
Aby znaleźć moduł o podanej nazwie modułu, użyj polecenia GetModuleByModuleName.
Moduł, którego wirtualny zakres adresów zawiera dany adres, jest zwracany przez polecenie GetModuleByOffset. Tę metodę można użyć do znalezienia indeksu modułu, mając dany adres podstawowy modułu.
Następujące metody zwracają informacje o modułach określonych za pomocą adresu podstawowego lub indeksu:
Nazwy modułu są zwracane przez polecenia GetModuleNames i GetModuleNameString.
Informacje o wersji modułu są zwracane przez polecenie GetModuleVersionInformation.
Niektóre parametry używane do opisywania modułu są zwracane przez polecenie GetModuleParameters. Aby uzyskać szczegółowe informacje na temat parametrów zwracanych przez tę metodę, zobacz DEBUG_MODULE_PARAMETERS.
Moduły rozładowane
Podczas debugowania w trybie użytkownika rozładowane moduły są śledzone tylko w systemie Windows Server 2003 i nowszych wersjach systemu Windows. Wcześniejsze wersje systemu Windows śledziły tylko moduły rozładowane w trybie jądra. Po śledzeniu są one indeksowane po załadowanych modułach. W związku z tym każda metoda wyszukującą moduły obiektu docelowego przeszukuje wszystkie załadowane moduły, a następnie zwolnione moduły. Moduły rozładowane mogą służyć do analizowania błędów spowodowanych próbą wywołania kodu rozładowanego.
Moduły syntetyczne
Moduły syntetyczne można utworzyć jako sposób etykietowania regionu pamięci. Te moduły nie mogą zawierać rzeczywistych symboli, ale mogą zawierać symbole syntetyczne. Metoda AddSyntheticModule tworzy nowy moduł syntetyczny. Moduły syntetyczne można usunąć przy użyciu polecenia RemoveSyntheticModule. Ponowne ładowanie wszystkich modułów w obiekcie docelowym powoduje usunięcie wszystkich modułów syntetycznych.
Ścieżka obrazu
Ścieżka obrazu wykonywalnego jest używana przez silnik podczas wyszukiwania obrazów wykonywalnych.
Ścieżka obrazu wykonywalnego może składać się z kilku katalogów oddzielonych średnikami (;). Te katalogi są wyszukiwane w odpowiedniej kolejności.
Aby zapoznać się z omówieniem ścieżki obrazu wykonywalnego, zobacz Ścieżka obrazu wykonywalnego.
Aby dodać katalog do ścieżki obrazu wykonywalnego, użyj metody AppendImagePath. Cała ścieżka obrazu wykonywalnego jest zwracana przez metodę GetImagePath i może zostać zmieniona przy użyciu polecenia SetImagePath.
Dodatkowe informacje
Aby uzyskać więcej informacji na temat procesów i procesów wirtualnych, zobacz Wątki i procesy.