Error PlatformLinux::LaunchProcess (ProcessLaunchInfo &launch_info) { Error error; if (IsHost()) { if (launch_info.GetFlags().Test (eLaunchFlagLaunchInShell)) { const bool is_localhost = true; const bool will_debug = launch_info.GetFlags().Test(eLaunchFlagDebug); const bool first_arg_is_full_shell_command = false; if (!launch_info.ConvertArgumentsForLaunchingInShell (error, is_localhost, will_debug, first_arg_is_full_shell_command)) return error; } error = Platform::LaunchProcess (launch_info); } else { error.SetErrorString ("the platform is not currently connected"); } return error; }
Error Platform::LaunchProcess (ProcessLaunchInfo &launch_info) { Error error; // Take care of the host case so that each subclass can just // call this function to get the host functionality. if (IsHost()) { if (::getenv ("LLDB_LAUNCH_FLAG_LAUNCH_IN_TTY")) launch_info.GetFlags().Set (eLaunchFlagLaunchInTTY); if (launch_info.GetFlags().Test (eLaunchFlagLaunchInShell)) { const bool is_localhost = true; const bool will_debug = launch_info.GetFlags().Test(eLaunchFlagDebug); const bool first_arg_is_full_shell_command = false; uint32_t num_resumes = GetResumeCountForLaunchInfo (launch_info); if (!launch_info.ConvertArgumentsForLaunchingInShell (error, is_localhost, will_debug, first_arg_is_full_shell_command, num_resumes)) return error; } error = Host::LaunchProcess (launch_info); } else error.SetErrorString ("base lldb_private::Platform class can't launch remote processes"); return error; }