diff --git a/lldb/include/lldb/Target/PostMortemProcess.h b/lldb/include/lldb/Target/PostMortemProcess.h --- a/lldb/include/lldb/Target/PostMortemProcess.h +++ b/lldb/include/lldb/Target/PostMortemProcess.h @@ -21,9 +21,9 @@ /// between these kinds of processes can have default implementations in this /// class. class PostMortemProcess : public Process { -public: using Process::Process; +public: bool IsLiveDebugSession() const override { return false; } }; diff --git a/lldb/include/lldb/Target/Process.h b/lldb/include/lldb/Target/Process.h --- a/lldb/include/lldb/Target/Process.h +++ b/lldb/include/lldb/Target/Process.h @@ -475,15 +475,6 @@ const ProcessEventData &operator=(const ProcessEventData &) = delete; }; - /// Construct with a shared pointer to a target, and the Process listener. - /// Uses the Host UnixSignalsSP by default. - Process(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp); - - /// Construct with a shared pointer to a target, the Process listener, and - /// the appropriate UnixSignalsSP for the process. - Process(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp, - const lldb::UnixSignalsSP &unix_signals_sp); - /// Destructor. /// /// The destructor is virtual since this class is designed to be inherited @@ -2499,6 +2490,16 @@ protected: friend class Trace; + + /// Construct with a shared pointer to a target, and the Process listener. + /// Uses the Host UnixSignalsSP by default. + Process(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp); + + /// Construct with a shared pointer to a target, the Process listener, and + /// the appropriate UnixSignalsSP for the process. + Process(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp, + const lldb::UnixSignalsSP &unix_signals_sp); + /// Get the processor tracing type supported for this process. /// Responses might be different depending on the architecture and /// capabilities of the underlying OS. diff --git a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h --- a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h +++ b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h @@ -36,9 +36,6 @@ static llvm::StringRef GetPluginDescriptionStatic(); - // Constructors and destructors - ProcessWindows(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp); - ~ProcessWindows(); size_t GetSTDOUT(char *buf, size_t buf_size, Status &error) override; @@ -104,6 +101,8 @@ Status DisableWatchpoint(Watchpoint *wp, bool notify = true) override; protected: + ProcessWindows(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp); + Status DoGetMemoryRegionInfo(lldb::addr_t vm_addr, MemoryRegionInfo &info) override; diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h --- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h +++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h @@ -49,8 +49,6 @@ class ProcessGDBRemote : public Process, private GDBRemoteClientBase::ContinueDelegate { public: - ProcessGDBRemote(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp); - ~ProcessGDBRemote() override; static lldb::ProcessSP CreateInstance(lldb::TargetSP target_sp, @@ -239,6 +237,8 @@ friend class GDBRemoteCommunicationClient; friend class GDBRemoteRegisterContext; + ProcessGDBRemote(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp); + bool SupportsMemoryTagging() override; /// Broadcaster event bits definitions. diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp --- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp @@ -193,14 +193,13 @@ PluginManager::UnregisterPlugin(ProcessGDBRemote::CreateInstance); } -lldb::ProcessSP -ProcessGDBRemote::CreateInstance(lldb::TargetSP target_sp, - ListenerSP listener_sp, - const FileSpec *crash_file_path, - bool can_connect) { +lldb::ProcessSP ProcessGDBRemote::CreateInstance( + lldb::TargetSP target_sp, ListenerSP listener_sp, + const FileSpec *crash_file_path, bool can_connect) { lldb::ProcessSP process_sp; if (crash_file_path == nullptr) - process_sp = std::make_shared(target_sp, listener_sp); + process_sp = std::shared_ptr( + new ProcessGDBRemote(target_sp, listener_sp)); return process_sp; } diff --git a/lldb/source/Plugins/Process/scripted/ScriptedProcess.h b/lldb/source/Plugins/Process/scripted/ScriptedProcess.h --- a/lldb/source/Plugins/Process/scripted/ScriptedProcess.h +++ b/lldb/source/Plugins/Process/scripted/ScriptedProcess.h @@ -50,10 +50,6 @@ static llvm::StringRef GetPluginDescriptionStatic(); - ScriptedProcess(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp, - const ScriptedProcess::ScriptedProcessInfo &launch_info, - Status &error); - ~ScriptedProcess() override; bool CanDebug(lldb::TargetSP target_sp, @@ -93,6 +89,10 @@ GetLoadedDynamicLibrariesInfos() override; protected: + ScriptedProcess(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp, + const ScriptedProcess::ScriptedProcessInfo &launch_info, + Status &error); + Status DoStop(); void Clear(); diff --git a/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp b/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp --- a/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp +++ b/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp @@ -62,8 +62,8 @@ ScriptedProcess::ScriptedProcessInfo scripted_process_info( target_sp->GetProcessLaunchInfo()); - auto process_sp = std::make_shared( - target_sp, listener_sp, scripted_process_info, error); + auto process_sp = std::shared_ptr(new ScriptedProcess( + target_sp, listener_sp, scripted_process_info, error)); if (error.Fail() || !process_sp || !process_sp->m_script_object_sp || !process_sp->m_script_object_sp->IsValid()) { diff --git a/lldb/unittests/Expression/DWARFExpressionTest.cpp b/lldb/unittests/Expression/DWARFExpressionTest.cpp --- a/lldb/unittests/Expression/DWARFExpressionTest.cpp +++ b/lldb/unittests/Expression/DWARFExpressionTest.cpp @@ -328,7 +328,9 @@ EXPECT_THAT_EXPECTED(Evaluate({DW_OP_lit0, DW_OP_deref}), llvm::Failed()); struct MockProcess : Process { - using Process::Process; + MockProcess(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp) + : Process(target_sp, listener_sp) {} + llvm::StringRef GetPluginName() override { return "mock process"; } bool CanDebug(lldb::TargetSP target, bool plugin_specified_by_name) override { diff --git a/lldb/unittests/Process/ProcessEventDataTest.cpp b/lldb/unittests/Process/ProcessEventDataTest.cpp --- a/lldb/unittests/Process/ProcessEventDataTest.cpp +++ b/lldb/unittests/Process/ProcessEventDataTest.cpp @@ -42,7 +42,8 @@ class DummyProcess : public Process { public: - using Process::Process; + DummyProcess(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp) + : Process(target_sp, listener_sp) {} bool CanDebug(lldb::TargetSP target, bool plugin_specified_by_name) override { return true; diff --git a/lldb/unittests/Target/ExecutionContextTest.cpp b/lldb/unittests/Target/ExecutionContextTest.cpp --- a/lldb/unittests/Target/ExecutionContextTest.cpp +++ b/lldb/unittests/Target/ExecutionContextTest.cpp @@ -47,7 +47,8 @@ class DummyProcess : public Process { public: - using Process::Process; + DummyProcess(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp) + : Process(target_sp, listener_sp) {} bool CanDebug(lldb::TargetSP target, bool plugin_specified_by_name) override { return true; diff --git a/lldb/unittests/Thread/ThreadTest.cpp b/lldb/unittests/Thread/ThreadTest.cpp --- a/lldb/unittests/Thread/ThreadTest.cpp +++ b/lldb/unittests/Thread/ThreadTest.cpp @@ -40,7 +40,8 @@ class DummyProcess : public Process { public: - using Process::Process; + DummyProcess(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp) + : Process(target_sp, listener_sp) {} bool CanDebug(lldb::TargetSP target, bool plugin_specified_by_name) override { return true;