Threads et processus

Terminologie

Les concepts de thread et de processus diffèrent entre le débogage en mode utilisateur et le débogage en mode noyau.

  • Dans le débogage en mode utilisateur, un processus est un processus de système d’exploitation et un thread est un thread de système d’exploitation.

  • Dans le débogage en mode noyau, le moteur de débogueur crée un processus virtuel pour chaque cible ; ce processus représente le noyau et ne correspond à aucun processus du système d’exploitation. Pour chaque processeur physique de l’ordinateur cible, le débogueur crée un thread virtuel ; ces threads représentent les processeurs et ne correspondent à aucun thread de système d’exploitation.

Lorsqu’un événement se produit, le moteur définit le processus d’événement et le thread d’événement sur le processus et le thread (système d’exploitation ou virtuel) dans lesquels l’événement s’est produit.

Le thread actuel est le thread (système d’exploitation ou virtuel) que le moteur contrôle actuellement. Le processus actuel est le processus (système d’exploitation ou virtuel) que le moteur contrôle actuellement. Lorsqu’un événement se produit, le thread et le processus actuels sont initialement définis sur le thread et le processus d’événement ; toutefois, ils peuvent être modifiés à l’aide des clients tant que la session est accessible.

En mode noyau, le débogueur effectue le suivi d’un processus implicite et d’un thread implicite. Le processus implicite est le processus du système d’exploitation qui détermine la traduction d’adresses mémoire virtuelles en adresses mémoire physiques.

Le thread implicite est le thread du système d’exploitation qui détermine les registres de la cible, y compris la pile des appels, le frame de pile et le décalage d’instruction.

Lorsqu’un événement se produit, le thread implicite et le processus implicite sont initialement définis sur le thread et le processus d’événement ; ils peuvent être modifiés tant que la session est accessible.

Données de thread et de processus

Le moteur conserve plusieurs informations sur chaque thread et processus. Cela inclut le thread système et l’ID de processus et les handles système, ainsi que l’environnement de processus (PEB), le bloc d’environnement de thread (TEB) et leurs emplacements dans la mémoire de la cible.

Informations supplémentaires

Pour plus d’informations sur l’utilisation de threads et de processus, consultez Contrôle des threads et des processus.