Udostępnij przez


WdbgExts Wątki i Procesy

Ten temat zawiera krótkie omówienie sposobu manipulowania wątkami i procesami przy użyciu interfejsu API WdbgExts. Aby zapoznać się z przeglądem wątków i procesów w aparacie debugera, zobacz Wątki i procesy w sekcji Omówienie aparatu debugera w dokumentacji.

Wątki

Aby uzyskać adres bloku środowiska wątku (TEB), który opisuje bieżący wątek, użyj metody GetTebAddress. W debugowaniu w trybie jądra struktura KTHREAD jest również dostępna do opisania wątku. Ta struktura jest zwracana przez polecenie GetCurrentThreadAddr (w debugowaniu w trybie użytkownika getCurrentThreadAddr zwraca adres TEB).

Kontekst wątku jest stanem zachowanym przez system Windows podczas przełączania wątków; jest reprezentowana przez strukturę CONTEXT. Ta struktura różni się w zależności od systemu operacyjnego i platformy i należy zachować ostrożność podczas korzystania ze struktury CONTEXT. Kontekst wątku jest zwracany przez funkcję GetContext i można go ustawić przy użyciu funkcji SetContext .

Aby zbadać ślad stosu dla bieżącego wątku, użyj funkcji StackTrace . Aby tymczasowo zmienić wątek używany do badania śladu stosu, użyj funkcji SetThreadForOperation lub SetThreadForOperation64. Zobacz Badanie śladu stosu w sekcji zatytułowanej Używanie interfejsu API aparatu debugera w tej dokumentacji, aby poznać dodatkowe metody badania stosu.

Aby uzyskać informacje o wątku systemu operacyjnego w obiekcie docelowym, użyj operacji IoctlIG_GET_THREAD_OS_INFO.

Procesy

Aby uzyskać adres bloku środowiska przetwarzania (PEB), który opisuje bieżący proces, użyj metody GetPebAddress. W debugowaniu w trybie jądra struktura KPROCESS jest również dostępna do opisania procesu. Ta struktura jest zwracana przez polecenie GetCurrentProcessAddr (w debugowaniu w trybie użytkownika GetCurrentProcessAddr zwraca adres PEB).

Metoda GetCurrentProcessHandle zwraca uchwyt systemowy dla bieżącego procesu.

Dodatkowe informacje

Aby uzyskać bardziej zaawansowany interfejs API manipulowania wątkami i manipulowania procesami, zobacz Kontrolowanie wątków i procesów w sekcji Korzystanie z interfejsu API aparatu debugera w tej dokumentacji.