다음을 통해 공유


ICorDebug::CreateProcess 메서드

디버거의 제어를 받고 있는 프로세스 및 해당 기본 스레드를 시작합니다.

HRESULT CreateProcess (
    [in]  LPCWSTR                     lpApplicationName,
    [in]  LPWSTR                      lpCommandLine,
    [in]  LPSECURITY_ATTRIBUTES       lpProcessAttributes,
    [in]  LPSECURITY_ATTRIBUTES       lpThreadAttributes,
    [in]  BOOL                        bInheritHandles,
    [in]  DWORD                       dwCreationFlags,
    [in]  PVOID                       lpEnvironment,
    [in]  LPCWSTR                     lpCurrentDirectory,
    [in]  LPSTARTUPINFOW              lpStartupInfo,
    [in]  LPPROCESS_INFORMATION       lpProcessInformation,
    [in]  CorDebugCreateProcessFlags  debuggingFlags,
    [out] ICorDebugProcess            **ppProcess
);

매개 변수

  • lpApplicationName
    [in] 시작된 프로세스에서 실행할 모듈을 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 모듈은 호출 프로세스의 보안 컨텍스트에서 실행됩니다.

  • lpCommandLine
    [in] 시작된 프로세스에서 실행할 명령줄을 지정하는 null로 끝나는 문자열에 대한 포인터입니다.

  • lpProcessAttributes
    [in] 프로세스의 보안 설명자를 지정하는 Win32 SECURITY_ATTRIBUTES 구조체에 대한 포인터입니다. lpProcessAttributes가 null인 경우 프로세스에서는 기본 보안 설명자를 가져옵니다.

  • lpThreadAttributes
    [in] 프로세스의 기본 스레드에 대한 보안 설명자를 지정하는 Win32 SECURITY_ATTRIBUTES 구조체에 대한 포인터입니다. lpThreadAttributes가 null인 경우 스레드에서는 기본 보안 설명자를 가져옵니다.

  • bInheritHandles
    [in] 호출 프로세스의 상속 가능한 각 핸들이 시작된 프로세스에서 상속되도록 지정하려면 true로 설정하고 핸들이 상속되지 않도록 지정하려면 false로 설정합니다. 상속된 핸들에는 원래 핸들과 동일한 값 및 액세스 권한이 있습니다.

  • dwCreationFlags
    [in] 시작된 프로세스의 우선 순위 클래스 및 동작을 제어하는 Win32 프로세스 생성 플래그()의 비트 조합입니다.

  • lpEnvironment
    [in] 새 프로세스의 환경 블록에 대한 포인터입니다.

  • lpCurrentDirectory
    [in] 프로세스의 현재 디렉터리에 대한 전체 경로를 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 이 매개 변수가 null인 경우 새 프로세스에 호출 프로세스와 동일한 현재 드라이브 및 디렉터리가 사용됩니다.

  • lpStartupInfo
    [in] 시작된 프로세스의 윈도우 스테이션, 데스크톱, 표준 핸들 및 주 창의 모양을 지정하는 Win32 STARTUPINFOW 구조체에 대한 포인터입니다.

  • lpProcessInformation
    [in] 시작할 프로세스에 대한 식별 정보를 지정하는 Win32 PROCESS_INFORMATION 구조체에 대한 포인터입니다.

  • debuggingFlags
    [in] 디버깅 옵션을 지정하는 CorDebugCreateProcessFlags 열거형의 값입니다.

  • ppProcess
    [out] 프로세스를 나타내는 ICorDebugProcess 개체의 주소에 대한 포인터입니다.

설명

이 메서드의 매개 변수는 Win32 CreateProcess 메서드의 매개 변수와 같습니다.

관리되지 않는 혼합 모드 디버깅을 사용하려면 dwCreationFlags를 DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS로 설정합니다. 관리되는 디버깅만 사용하려면 이러한 플래그는 설정하지 마십시오.

디버거 및 디버깅할 프로세스(연결된 프로세스)에서 단일 콘솔을 공유하고 interop 디버깅이 사용된 경우에는 연결된 프로세스가 콘솔 잠금을 유지하고 디버그 이벤트에서 중지할 수 있습니다. 그런 다음 디버거에서는 콘솔을 사용하지 못하도록 차단합니다. 이 문제를 방지하려면 dwCreationFlags 매개 변수의 CREATE_NEW_CONSOLE 플래그를 설정합니다.

Win9x 플랫폼과 IA64 기반 플랫폼 및 AMD64 기반 플랫폼과 같은 x86이 아닌 플랫폼에서는 Interop 디버깅이 지원되지 않습니다.

요구 사항

플랫폼: .NET Framework 시스템 요구 사항 참조

헤더: CorDebug.idl, CorDebug.h

라이브러리: CorGuids.lib

.NET Framework 버전: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

참고 항목

참조

ICorDebug 인터페이스