9#ifndef lldb_Host_windows_ProcessLauncherWindows_h_
10#define lldb_Host_windows_ProcessLauncherWindows_h_
15#include "llvm/ADT/ScopeExit.h"
16#include "llvm/ADT/StringRef.h"
17#include "llvm/Support/ErrorOr.h"
18#include "llvm/Support/WindowsError.h"
44 static llvm::ErrorOr<ProcThreadAttributeList>
45 Create(STARTUPINFOEXW &startupinfoex);
69 other.lpAttributeList =
nullptr;
109 static llvm::ErrorOr<std::vector<HANDLE>>
112 HANDLE stdout_handle = NULL,
HANDLE stderr_handle = NULL,
113 HANDLE stdin_handle = NULL);
154llvm::ErrorOr<std::wstring>
static llvm::raw_ostream & error(Stream &strm)
A command line argument class.
ProcThreadAttributeList(LPPROC_THREAD_ATTRIBUTE_LIST list)
ProcThreadAttributeList(ProcThreadAttributeList &&other) noexcept
ProcThreadAttributeList & operator=(const ProcThreadAttributeList &)=delete
static llvm::ErrorOr< ProcThreadAttributeList > Create(STARTUPINFOEXW &startupinfoex)
Allocate memory for the attribute list, initialize it, and sets the lpAttributeList member of STARTUP...
llvm::Error SetupPseudoConsole(HPCON hPC)
Setup the PseudoConsole handle in the underlying LPPROC_THREAD_ATTRIBUTE_LIST.
~ProcThreadAttributeList()
LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList
ProcThreadAttributeList(const ProcThreadAttributeList &)=delete
ProcThreadAttributeList is not copyable.
HostProcess LaunchProcess(const ProcessLaunchInfo &launch_info, Status &error) override
static HANDLE GetStdioHandle(const ProcessLaunchInfo &launch_info, int fd)
static llvm::ErrorOr< std::vector< HANDLE > > GetInheritedHandles(STARTUPINFOEXW &startupinfoex, const ProcessLaunchInfo *launch_info=nullptr, HANDLE stdout_handle=NULL, HANDLE stderr_handle=NULL, HANDLE stdin_handle=NULL)
Get the list of Windows handles that should be inherited by the child process and update STARTUPINFOE...
A class that represents a running process on the host machine.
llvm::ErrorOr< std::wstring > GetFlattenedWindowsCommandStringW(const Args &args)
Flattens an Args object into a Windows command-line wide string.