Udostępnij przez


Wątki i procesy

Terminologia

Pojęcia dotyczące wątków i procesów różnią się między debugowaniem w trybie użytkownika a debugowaniem w trybie jądra.

  • W trybie użytkownika debugowanieproces jest procesem systemu operacyjnego, a wątek jest wątkiem systemu operacyjnego.

  • W debugowaniu w trybie jądraaparat debugera tworzy proces wirtualny dla każdego obiektu docelowego; ten proces reprezentuje jądro i nie odpowiada żadnemu procesowi systemu operacyjnego. Dla każdego procesora fizycznego na komputerze docelowym debuger tworzy wątek wirtualny; te wątki reprezentują procesory i nie odpowiadają żadnym wątkom systemu operacyjnego.

Gdy wystąpi zdarzenie, silnik ustawia proces zdarzenia i wątek zdarzenia na proces i wątek (systemu operacyjnego lub wirtualnego), w którym wystąpiło zdarzenie.

Bieżący wątek to wątek (systemowy lub wirtualny), kontrolowany przez silnik. Bieżący proces to proces (system operacyjny lub wirtualny), który obecnie kontroluje aparat. Kiedy wystąpi zdarzenie, bieżący wątek i proces są początkowo ustawione na wątek i proces zdarzenia, ale można je zmienić za pomocą klientów, gdy sesja jest dostępna.

W trybie jądra debuger śledzi niejawny proces i niejawny wątek. Niejawny proces to proces systemu operacyjnego, który określa tłumaczenie z wirtualnych do fizycznych adresów pamięci.

Niejawny wątek jest wątkiem systemu operacyjnego, który ustala rejestry obiektu docelowego, w tym stos wywołań, ramkę stosu i przesunięcie instrukcji.

Gdy wystąpi zdarzenie, domyślny wątek i domyślny proces są początkowo ustawiane na wątek i proces zdarzenia; można je zmieniać, dopóki sesja jest dostępna.

Dane wątków i procesów

Silnik przechowuje różne informacje o każdym wątku i procesie. Obejmuje to wątek systemowy, identyfikator procesu, uchwyty systemowe, środowisko procesu (PEB), blok środowiska wątku (TEB) oraz ich lokalizacje w pamięci docelowej.

Dodatkowe informacje

Aby uzyskać szczegółowe informacje na temat korzystania z wątków i procesów, zobacz Kontrolowanie wątków i procesów.