Condividi tramite


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 di evento e il thread di 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) attualmente controllato dal motore. Il processo corrente è il processo (sistema operativo o virtuale) attualmente controllato dal motore. 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, tra cui lo stack di chiamate, il frame dello stack e l'offset di istruzioni.

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

Thread e Dati di Processo

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

informazioni aggiuntive

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