JDevlieghere created this revision. JDevlieghere added a reviewer: jingham. JDevlieghere added a project: LLDB. JDevlieghere requested review of this revision.
Currently `SBTarget::LaunchSimple` creates a new `LaunchInfo` which means it ignores any target properties that have been set. Instead, it should start from the target's `LaunchInfo` and populated the specified fields. Repository: rLLDB LLDB https://reviews.llvm.org/D85235 Files: lldb/source/API/SBTarget.cpp Index: lldb/source/API/SBTarget.cpp =================================================================== --- lldb/source/API/SBTarget.cpp +++ lldb/source/API/SBTarget.cpp @@ -287,16 +287,24 @@ (const char **, const char **, const char *), argv, envp, working_directory); - char *stdin_path = nullptr; - char *stdout_path = nullptr; - char *stderr_path = nullptr; - uint32_t launch_flags = 0; - bool stop_at_entry = false; + TargetSP target_sp = GetSP(); + if (!target_sp) + return LLDB_RECORD_RESULT(SBProcess()); + + SBLaunchInfo launch_info = GetLaunchInfo(); + + if (Module *exe_module = target_sp->GetExecutableModulePointer()) + launch_info.SetExecutableFile(exe_module->GetPlatformFileSpec(), + /*add_as_first_arg*/ true); + if (argv) + launch_info.SetArguments(argv, /*append*/ true); + if (envp) + launch_info.SetEnvironmentEntries(envp, /*append*/ false); + if (working_directory) + launch_info.SetWorkingDirectory(working_directory); + SBError error; - SBListener listener = GetDebugger().GetListener(); - return LLDB_RECORD_RESULT(Launch(listener, argv, envp, stdin_path, - stdout_path, stderr_path, working_directory, - launch_flags, stop_at_entry, error)); + return LLDB_RECORD_RESULT(Launch(launch_info, error)); } SBError SBTarget::Install() {
Index: lldb/source/API/SBTarget.cpp =================================================================== --- lldb/source/API/SBTarget.cpp +++ lldb/source/API/SBTarget.cpp @@ -287,16 +287,24 @@ (const char **, const char **, const char *), argv, envp, working_directory); - char *stdin_path = nullptr; - char *stdout_path = nullptr; - char *stderr_path = nullptr; - uint32_t launch_flags = 0; - bool stop_at_entry = false; + TargetSP target_sp = GetSP(); + if (!target_sp) + return LLDB_RECORD_RESULT(SBProcess()); + + SBLaunchInfo launch_info = GetLaunchInfo(); + + if (Module *exe_module = target_sp->GetExecutableModulePointer()) + launch_info.SetExecutableFile(exe_module->GetPlatformFileSpec(), + /*add_as_first_arg*/ true); + if (argv) + launch_info.SetArguments(argv, /*append*/ true); + if (envp) + launch_info.SetEnvironmentEntries(envp, /*append*/ false); + if (working_directory) + launch_info.SetWorkingDirectory(working_directory); + SBError error; - SBListener listener = GetDebugger().GetListener(); - return LLDB_RECORD_RESULT(Launch(listener, argv, envp, stdin_path, - stdout_path, stderr_path, working_directory, - launch_flags, stop_at_entry, error)); + return LLDB_RECORD_RESULT(Launch(launch_info, error)); } SBError SBTarget::Install() {
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits