スレッドとプロセス
用語
スレッドとプロセスの概念は、ユーザーモード デバッグとカーネルモード デバッグの間で異なります。
ユーザーモード デバッグでは、プロセスはオペレーティング システム プロセスであり、スレッドはオペレーティング システム スレッドです。
カーネル モード デバッグでは、デバッガー エンジンはターゲットごとに仮想プロセスを作成します。このプロセスはカーネルを表し、オペレーティング システム プロセスには対応しません。 ターゲット コンピューターの物理プロセッサごとに、デバッガーは仮想スレッドを作成します。これらのスレッドはプロセッサを表し、オペレーティング システムのスレッドには対応しません。
イベントが発生すると、エンジンは、イベント プロセスとイベント スレッドを、イベントが発生したプロセスとスレッド (オペレーティング システムまたは仮想) に設定します。
現在のスレッドは、エンジンが現在制御しているスレッド (オペレーティング システムまたは仮想) です。 現在のプロセスは、エンジンが現在制御しているプロセス (オペレーティング システムまたは仮想) です。 イベントが発生すると、現在のスレッドとプロセスが最初にイベント スレッドとプロセスに設定されますが、セッションにアクセスできる間は、クライアントを使用して変更できます。
カーネル モードでは、デバッガーは暗黙的なプロセスと暗黙的なスレッドを追跡します。 暗黙的なプロセスは、仮想メモリ アドレスから物理メモリ アドレスへの変換を決定するオペレーティング システム プロセスです。
暗黙的なスレッドは、呼び出し履歴、スタック フレーム、命令オフセットなど、ターゲットのレジスタを決定するオペレーティング システム スレッドです。
イベントが発生すると、暗黙的なスレッドと暗黙的なプロセスが最初にイベント スレッドとプロセスに設定されます。セッションにアクセスできる間に変更できます。
スレッドとプロセス データ
エンジンは、各スレッドとプロセスに関するいくつかの情報を保持します。 これには、システム スレッドとプロセス ID とシステム ハンドル、プロセス環境 (PEB)、スレッド環境ブロック (TEB)、およびターゲットのメモリ内の場所が含まれます。
追加情報
スレッドとプロセスの使用の詳細については、「スレッドとプロセスの制御」を参照してください。