diff options
Diffstat (limited to 'include/lldb/Target/OperatingSystem.h')
-rw-r--r-- | include/lldb/Target/OperatingSystem.h | 120 |
1 files changed, 57 insertions, 63 deletions
diff --git a/include/lldb/Target/OperatingSystem.h b/include/lldb/Target/OperatingSystem.h index 74de5645da5a..24ded3f69723 100644 --- a/include/lldb/Target/OperatingSystem.h +++ b/include/lldb/Target/OperatingSystem.h @@ -1,4 +1,5 @@ -//===-- OperatingSystem.h ----------------------------------------------*- C++ -*-===// +//===-- OperatingSystem.h ----------------------------------------------*- C++ +//-*-===// // // The LLVM Compiler Infrastructure // @@ -14,84 +15,77 @@ // C++ Includes // Other libraries and framework includes -#include "lldb/lldb-private.h" #include "lldb/Core/PluginInterface.h" +#include "lldb/lldb-private.h" namespace lldb_private { - + //---------------------------------------------------------------------- /// @class OperatingSystem OperatingSystem.h "lldb/Target/OperatingSystem.h" /// @brief A plug-in interface definition class for halted OS helpers. /// -/// Halted OS plug-ins can be used by any process to locate and create -/// OS objects, like threads, during the lifetime of a debug session. +/// Halted OS plug-ins can be used by any process to locate and create +/// OS objects, like threads, during the lifetime of a debug session. /// This is commonly used when attaching to an operating system that is /// halted, such as when debugging over JTAG or connecting to low level /// kernel debug services. //---------------------------------------------------------------------- -class OperatingSystem : - public PluginInterface -{ +class OperatingSystem : public PluginInterface { public: - //------------------------------------------------------------------ - /// Find a halted OS plugin for a given process. - /// - /// Scans the installed OperatingSystem plug-ins and tries to find - /// an instance that matches the current target triple and - /// executable. - /// - /// @param[in] process - /// The process for which to try and locate a halted OS - /// plug-in instance. - /// - /// @param[in] plugin_name - /// An optional name of a specific halted OS plug-in that - /// should be used. If NULL, pick the best plug-in. - //------------------------------------------------------------------ - static OperatingSystem* - FindPlugin (Process *process, const char *plugin_name); - - //------------------------------------------------------------------ - // Class Methods - //------------------------------------------------------------------ - OperatingSystem (Process *process); - - ~OperatingSystem() override; - - //------------------------------------------------------------------ - // Plug-in Methods - //------------------------------------------------------------------ - virtual bool - UpdateThreadList (ThreadList &old_thread_list, - ThreadList &real_thread_list, - ThreadList &new_thread_list) = 0; - - virtual void - ThreadWasSelected (Thread *thread) = 0; - - virtual lldb::RegisterContextSP - CreateRegisterContextForThread (Thread *thread, lldb::addr_t reg_data_addr) = 0; - - virtual lldb::StopInfoSP - CreateThreadStopReason (Thread *thread) = 0; - - virtual lldb::ThreadSP - CreateThread (lldb::tid_t tid, lldb::addr_t context) - { - return lldb::ThreadSP(); - } - - virtual bool - IsOperatingSystemPluginThread (const lldb::ThreadSP &thread_sp); + //------------------------------------------------------------------ + /// Find a halted OS plugin for a given process. + /// + /// Scans the installed OperatingSystem plug-ins and tries to find + /// an instance that matches the current target triple and + /// executable. + /// + /// @param[in] process + /// The process for which to try and locate a halted OS + /// plug-in instance. + /// + /// @param[in] plugin_name + /// An optional name of a specific halted OS plug-in that + /// should be used. If NULL, pick the best plug-in. + //------------------------------------------------------------------ + static OperatingSystem *FindPlugin(Process *process, const char *plugin_name); + + //------------------------------------------------------------------ + // Class Methods + //------------------------------------------------------------------ + OperatingSystem(Process *process); + + ~OperatingSystem() override; + + //------------------------------------------------------------------ + // Plug-in Methods + //------------------------------------------------------------------ + virtual bool UpdateThreadList(ThreadList &old_thread_list, + ThreadList &real_thread_list, + ThreadList &new_thread_list) = 0; + + virtual void ThreadWasSelected(Thread *thread) = 0; + + virtual lldb::RegisterContextSP + CreateRegisterContextForThread(Thread *thread, + lldb::addr_t reg_data_addr) = 0; + + virtual lldb::StopInfoSP CreateThreadStopReason(Thread *thread) = 0; + + virtual lldb::ThreadSP CreateThread(lldb::tid_t tid, lldb::addr_t context) { + return lldb::ThreadSP(); + } + + virtual bool IsOperatingSystemPluginThread(const lldb::ThreadSP &thread_sp); protected: - //------------------------------------------------------------------ - // Member variables. - //------------------------------------------------------------------ - Process* m_process; ///< The process that this dynamic loader plug-in is tracking. + //------------------------------------------------------------------ + // Member variables. + //------------------------------------------------------------------ + Process + *m_process; ///< The process that this dynamic loader plug-in is tracking. private: - DISALLOW_COPY_AND_ASSIGN (OperatingSystem); + DISALLOW_COPY_AND_ASSIGN(OperatingSystem); }; } // namespace lldb_private |