1//===-- DarwinProcessLauncher.h ---------------------------------*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8 9#ifndef DarwinProcessLauncher_h 10#define DarwinProcessLauncher_h 11 12// C headers 13#include <mach/machine.h> 14#include <sys/types.h> 15 16// C++ headers 17#include <functional> 18 19// LLDB headers 20#include "lldb/lldb-enumerations.h" 21#include "lldb/lldb-forward.h" 22 23#include "LaunchFlavor.h" 24 25namespace lldb_private { 26namespace darwin_process_launcher { 27// ============================================================================= 28/// Launches a process for debugging. 29/// 30/// \param[inout] launch_info 31/// Specifies details about the process to launch (e.g. path, architecture, 32/// etc.). On output, includes the launched ProcessID (pid). 33/// 34/// \param[out] pty_master_fd 35/// Returns the master side of the pseudo-terminal used to communicate 36/// with stdin/stdout from the launched process. May be nullptr. 37/// 38/// \param[out] launch_flavor 39/// Contains the launch flavor used when launching the process. 40// ============================================================================= 41Status 42LaunchInferior(ProcessLaunchInfo &launch_info, int *pty_master_fd, 43 lldb_private::process_darwin::LaunchFlavor *launch_flavor); 44 45} // darwin_process_launcher 46} // lldb_private 47 48#endif /* DarwinProcessLauncher_h */ 49