다음을 통해 공유


스레드 및 프로세스

용어

스레드와 프로세스 개념은 사용자 모드 디버깅과 커널 모드 디버깅 간에 다릅니다.

  • 사용자 모드 디버깅에서 프로세스는 운영 체제 프로세스이고 스레드는 운영 체제 스레드입니다.

  • 커널 모드 디버깅에서 디버거 엔진은 각 대상에 대한 가상 프로세스를 만듭니다. 이 프로세스는 커널을 나타내며 운영 체제 프로세스에 해당하지 않습니다. 대상 컴퓨터의 각 물리적 프로세서에 대해 디버거는 가상 스레드를 만듭니다. 이러한 스레드는 프로세서를 나타내며 운영 체제 스레드에 해당하지 않습니다.

이벤트가 발생하면 엔진은 이벤트 프로세스이벤트 스레드 를 이벤트가 발생한 프로세스 및 스레드(운영 체제 또는 가상)로 설정합니다.

현재 스레드는 엔진이 현재 제어하는 스레드(운영 체제 또는 가상)입니다. 현재 프로세스는 엔진이 현재 제어하는 프로세스(운영 체제 또는 가상)입니다. 이벤트가 발생하면 현재 스레드 및 프로세스가 처음에 이벤트 스레드 및 프로세스로 설정됩니다. 하지만 세션에 액세스할 수 있는 동안 클라이언트를 사용하여 변경할 수 있습니다.

커널 모드에서 디버거는 암시적 프로세스 및 암시적 스레드를 추적합니다. 암시적 프로세스는 가상에서 실제 메모리 주소로의 변환을 결정하는 운영 체제 프로세스입니다.

암시적 스레드는 호출 스택, 스택 프레임 및 명령 오프셋을 포함하여 대상의 레지스터를 결정하는 운영 체제 스레드입니다.

이벤트가 발생하면 암시적 스레드 및 암시적 프로세스가 처음에 이벤트 스레드 및 프로세스로 설정됩니다. 세션에 액세스할 수 있는 동안 변경할 수 있습니다.

스레드 및 프로세스 데이터

엔진은 각 스레드 및 프로세스에 대한 여러 정보를 유지 관리합니다. 여기에는 시스템 스레드 및 프로세스 ID 및 시스템 핸들, PEB(프로세스 환경), TEB(스레드 환경 블록) 및 대상 메모리의 위치가 포함됩니다.

추가 정보

스레드 및 프로세스 사용에 대한 자세한 내용은 스레드 및 프로세스 제어를 참조하세요.