スレッドとプロセス

用語

スレッドとプロセスの概念は、ユーザーモードのデバッグとカーネルモードのデバッグで異なります。

  • ユーザーモードのデバッグでは、プロセスはオペレーティングシステムのプロセスであり、スレッドはオペレーティングシステムのスレッドです。

  • カーネルモードのデバッグでは、デバッガーエンジンがターゲットごとに仮想プロセスを作成します。このプロセスはカーネルを表し、どのオペレーティングシステムプロセスにも対応していません。 ターゲットコンピューターの物理プロセッサごとに、デバッガーによって 仮想スレッドが作成されます。これらのスレッドはプロセッサを表し、オペレーティングシステムのスレッドには対応していません。

イベントが発生すると、エンジンはイベント プロセス とイベント スレッド を、そのイベントが発生したプロセスとスレッド (オペレーティングシステムまたは仮想) に設定します。

現在のスレッドは、エンジンが現在制御しているスレッド (オペレーティングシステムまたは仮想) です。 現在のプロセスは、エンジンが現在制御しているプロセス (オペレーティングシステムまたは仮想) です。 イベントが発生すると、現在のスレッドとプロセスは最初にイベントスレッドとプロセスに設定されます。ただし、セッションにアクセスできる間は、クライアントを使用して変更することができます。

カーネルモードでは、デバッガーは暗黙的なプロセスと暗黙のスレッドを追跡します。 暗黙のプロセスは、仮想マシンと物理メモリのアドレスの変換を決定するオペレーティングシステムプロセスです。

暗黙のスレッドは、呼び出し履歴、スタックフレーム、命令オフセットなど、ターゲットのレジスタを決定するオペレーティングシステムスレッドです。

イベントが発生すると、暗黙的なスレッドと暗黙のプロセスが最初にイベントスレッドとプロセスに設定されます。これらは、セッションにアクセスできる間に変更できます。

スレッドとプロセスデータ

エンジンは、各スレッドとプロセスに関する情報の一部を保持します。 これには、システムスレッドとプロセス ID とシステムハンドル、プロセス環境 (PEB)、スレッド環境ブロック (TEB)、およびターゲットのメモリ内の場所が含まれます。

追加情報

スレッドとプロセスの使用方法の詳細については、「 スレッドとプロセスの制御」を参照してください。