Share via


スレッドとプロセス

用語

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

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

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

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

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

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

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

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

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

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

追加情報

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