デバッグ用のプロセス機能

CreateProcess 関数を使用すると、デバッガーでプロセスを開始し、デバッグできます。 CreateProcessfdwCreate パラメーターは、デバッグ操作の種類を指定するために使用されます。 DEBUG_PROCESS フラグがパラメーターに指定されている場合、子孫が DEBUG_PROCESS フラグなしで作成されている場合、デバッガーは新しいプロセスとそのプロセスのすべての子孫をデバッグします。

fdwCreate に DEBUG_PROCESS フラグと DEBUG_ONLY_THIS_PROCESS フラグが指定されている場合、デバッガーは新しいプロセスをデバッグしますが、その子孫はデバッグしません。

1 つのデバッガーは、DEBUG_PROCESS フラグを使用してプロセスを作成することで、別のデバッガーをデバッグできます。 その後、新しいプロセス (デバッグ中のデバッガー) は、DEBUG_PROCESS フラグを使用してプロセスを作成する必要があります。

OpenProcess 関数を使用すると、デバッガーは既存のプロセスの識別子を取得できます。 (DebugActiveProcess 関数では、この識別子を使用してデバッガーをプロセスにアタッチします)。通常、デバッガーは、PROCESS_VM_READ フラグとPROCESS_VM_WRITE フラグを使用してプロセスを開きます。 これらのフラグを使用すると、デバッガーは ReadProcessMemory 関数と WriteProcessMemory 関数を使用して、プロセスの仮想メモリの読み取りと書き込みを行うことができます。 詳細については、「プロセスとスレッド」を参照してください。