Thread e processi

Terminologia

I concetti relativi a thread e processi sono diversi tra il debug in modalità utente e il debug in modalità kernel.

  • Nel debug in modalità utente, un processo è un processo del sistema operativo e un thread è un thread del sistema operativo.

  • Nel debug in modalità kernel, il motore del debugger crea un processo virtuale per ogni destinazione. questo processo rappresenta il kernel e non corrisponde ad alcun processo del sistema operativo. Per ogni processore fisico nel computer di destinazione, il debugger crea un thread virtuale. questi thread rappresentano i processori e non corrispondono ad alcun thread del sistema operativo.

Quando si verifica un evento, il motore imposta il processo dell'evento e il thread dell'evento sul processo e sul thread (sistema operativo o virtuale) in cui si è verificato l'evento.

Il thread corrente è il thread (sistema operativo o virtuale) che il motore sta attualmente controllando. Il processo corrente è il processo (sistema operativo o virtuale) che il motore sta attualmente controllando. Quando si verifica un evento, il thread e il processo correnti vengono inizialmente impostati sul thread e sul processo dell'evento; ma possono essere modificati usando i client mentre la sessione è accessibile.

In modalità kernel, il debugger tiene traccia di un processo implicito e di un thread implicito. Il processo implicito è il processo del sistema operativo che determina la conversione da indirizzi di memoria virtuale a fisica.

Il thread implicito è il thread del sistema operativo che determina i registri della destinazione, inclusi stack di chiamate, stack frame e offset dell'istruzione.

Quando si verifica un evento, il thread implicito e il processo implicito vengono inizialmente impostati sul thread e sul processo dell'evento; possono essere modificate mentre la sessione è accessibile.

Dati di thread ed elaborazione

Il motore gestisce diverse informazioni su ogni thread e processo. Sono inclusi il thread di sistema e l'ID del processo e gli handle di sistema, l'ambiente di processo (PEB), il blocco di ambiente del thread (TEB) e le relative posizioni nella memoria di destinazione.

Informazioni aggiuntive

Per informazioni dettagliate sull'uso di thread e processi, vedere Controllo di thread e processi.