Поделиться через


Метод 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] Указатель на структуру SECURITY_ATTRIBUTES для Win32, которая задает дескриптор безопасности процесса. Если значение параметра lpProcessAttributes равно NULL, процесс получает дескриптор безопасности по умолчанию.

  • lpThreadAttributes
    [in] Указатель на структуру Win32 SECURITY_ATTRIBUTES, которая задает дескриптор безопасности для основного потока процесса. Если значение параметра lpThreadAttributes равно NULL, поток получает дескриптор безопасности по умолчанию.

  • bInheritHandles
    [in] Если каждый допускающий наследование дескриптор в вызывающем процессе унаследован запущенным процессом, нужно задать значение true; если же дескрипторы не унаследованы, следует задать значение false. Унаследованные дескрипторы обладают теми же значениями и правами доступа, что и исходные дескрипторы.

  • dwCreationFlags
    [in] Побитовое сочетание флагов создания процесса для Win32, управляющее классом приоритетов и поведением запущенных процессов.

  • lpEnvironment
    [in] Указатель на блокировку среды для нового процесса.

  • lpCurrentDirectory
    [in] Указатель на строку, завершающуюся значением NULL и задающую полный путь к текущему каталогу процесса. Если этот параметр равен NULL, диск и каталог нового процесса будут совпадать с соответствующими параметрами вызывающего процесса.

  • lpStartupInfo
    [in] Указатель на структуру STARTUPINFOW Win32, которая задает оконный терминал, рабочий стол, стандартные дескрипторы и внешний вид основного окна для запущенного процесса.

  • lpProcessInformation
    [in] Указатель на структуру PROCESS_INFORMATION для Win32, которая задает сведения об идентификации запускаемого процесса.

  • debuggingFlags
    [in] Значение перечисления CorDebugCreateProcessFlags, которое задает параметры отладки.

  • ppProcess
    [out] Указатель на адрес объекта ICorDebugProcess, представляющего процесс.

Заметки

Параметры этого метода совпадают с параметрами метода CreateProcess для Win32.

Чтобы включить смешанный режим отладки неуправляемого кода нужно задать для параметра dwCreationFlags значение DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS. Если нужно использовать только управляемую отладку, эти флаги добавлять не следует.

Если отладчик и отлаживаемый (вложенный) процесс совместно используют одну консоль и при этом применяется отладка взаимодействия, вложенный процесс может заблокировать консоль и остановить событие отладки. Затем отладчик заблокирует любые попытки использования консоли. Чтобы избежать этих проблем, нужно задать флаг CREATE_NEW_CONSOLE в параметре dwCreationFlags.

Отладка взаимодействия не поддерживается в платформах Win9x и платформах, отличных от x86, таких как платформы на основе архитектуры IA-64 и AMD64.

Требования

Платформы: см. раздел Требования к системе для .NET Framework.

Заголовок: CorDebug.idl, CorDebug.h

Библиотека: CorGuids.lib

Версии платформы .NET Framework: 4, 3.5 с пакетом обновления 1 (SP1), 3.5, 3.0 с пакетом обновления 1 (SP1), 3.0, 2.0 с пакетом обновления 1 (SP1), 2.0, 1.1, 1.0

См. также

Ссылки

Интерфейс ICorDebug