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 @@ -364,7 +364,6 @@ /// A plug-in interface definition class for debugging a process. class Process : public std::enable_shared_from_this, public ProcessProperties, - public UserID, public Broadcaster, public ExecutionContextScope, public PluginInterface { @@ -560,6 +559,15 @@ uint32_t GetAddressByteSize() const; + /// Sets the stored pid. + /// + /// This does not change the pid of underlying process. + lldb::pid_t GetID() const { return m_pid; } + + /// Returns the pid of the process or LLDB_INVALID_PROCESS_ID if there is + /// no known pid. + void SetID(lldb::pid_t new_pid) { m_pid = new_pid; } + uint32_t GetUniqueID() const { return m_process_unique_id; } /// Check if a plug-in instance can debug the file in \a module. @@ -2730,6 +2738,7 @@ // Member variables std::weak_ptr m_target_wp; ///< The target that owns this process. + lldb::pid_t m_pid = LLDB_INVALID_PROCESS_ID; ThreadSafeValue m_public_state; ThreadSafeValue m_private_state; // The actual state of our process diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp --- a/lldb/source/Target/Process.cpp +++ b/lldb/source/Target/Process.cpp @@ -529,7 +529,7 @@ Process::Process(lldb::TargetSP target_sp, ListenerSP listener_sp, const UnixSignalsSP &unix_signals_sp) - : ProcessProperties(this), UserID(LLDB_INVALID_PROCESS_ID), + : ProcessProperties(this), Broadcaster((target_sp->GetDebugger().GetBroadcasterManager()), Process::GetStaticBroadcasterClass().AsCString()), m_target_wp(target_sp), m_public_state(eStateUnloaded),