diff options
Diffstat (limited to 'lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.h')
-rw-r--r-- | lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.h | 187 |
1 files changed, 79 insertions, 108 deletions
diff --git a/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.h b/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.h index 5dcb37b04ea..91bd7a6a58c 100644 --- a/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.h +++ b/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.h @@ -7,7 +7,6 @@ // //===----------------------------------------------------------------------===// - #ifndef StructuredDataDarwinLog_h #define StructuredDataDarwinLog_h @@ -16,149 +15,121 @@ #include <mutex> // Forward declarations -namespace sddarwinlog_private -{ - class EnableCommand; +namespace sddarwinlog_private { +class EnableCommand; } -namespace lldb_private -{ +namespace lldb_private { -class StructuredDataDarwinLog : public StructuredDataPlugin -{ - friend sddarwinlog_private::EnableCommand; +class StructuredDataDarwinLog : public StructuredDataPlugin { + friend sddarwinlog_private::EnableCommand; public: + // ------------------------------------------------------------------------- + // Public static API + // ------------------------------------------------------------------------- - // ------------------------------------------------------------------------- - // Public static API - // ------------------------------------------------------------------------- - - static void - Initialize(); - - static void - Terminate(); + static void Initialize(); - static const ConstString& - GetStaticPluginName(); + static void Terminate(); - // ------------------------------------------------------------------------- - /// Return whether the DarwinLog functionality is enabled. - /// - /// The DarwinLog functionality is enabled if the user expicitly enabled - /// it with the enable command, or if the user has the setting set - /// that controls if we always enable it for newly created/attached - /// processes. - /// - /// @return - /// True if DarwinLog support is/will be enabled for existing or - /// newly launched/attached processes. - // ------------------------------------------------------------------------- - static bool - IsEnabled(); + static const ConstString &GetStaticPluginName(); - // ------------------------------------------------------------------------- - // PluginInterface API - // ------------------------------------------------------------------------- + // ------------------------------------------------------------------------- + /// Return whether the DarwinLog functionality is enabled. + /// + /// The DarwinLog functionality is enabled if the user expicitly enabled + /// it with the enable command, or if the user has the setting set + /// that controls if we always enable it for newly created/attached + /// processes. + /// + /// @return + /// True if DarwinLog support is/will be enabled for existing or + /// newly launched/attached processes. + // ------------------------------------------------------------------------- + static bool IsEnabled(); - ConstString - GetPluginName() override; + // ------------------------------------------------------------------------- + // PluginInterface API + // ------------------------------------------------------------------------- - uint32_t - GetPluginVersion() override; + ConstString GetPluginName() override; - // ------------------------------------------------------------------------- - // StructuredDataPlugin API - // ------------------------------------------------------------------------- + uint32_t GetPluginVersion() override; - bool - SupportsStructuredDataType(const ConstString &type_name) override; + // ------------------------------------------------------------------------- + // StructuredDataPlugin API + // ------------------------------------------------------------------------- - void - HandleArrivalOfStructuredData(Process &process, - const ConstString &type_name, - const StructuredData::ObjectSP - &object_sp) override; + bool SupportsStructuredDataType(const ConstString &type_name) override; - Error - GetDescription(const StructuredData::ObjectSP &object_sp, - lldb_private::Stream &stream) override; + void HandleArrivalOfStructuredData( + Process &process, const ConstString &type_name, + const StructuredData::ObjectSP &object_sp) override; + Error GetDescription(const StructuredData::ObjectSP &object_sp, + lldb_private::Stream &stream) override; - bool - GetEnabled(const ConstString &type_name) const override; + bool GetEnabled(const ConstString &type_name) const override; - void - ModulesDidLoad(Process &process, ModuleList &module_list) override; + void ModulesDidLoad(Process &process, ModuleList &module_list) override; private: + // ------------------------------------------------------------------------- + // Private constructors + // ------------------------------------------------------------------------- - // ------------------------------------------------------------------------- - // Private constructors - // ------------------------------------------------------------------------- + StructuredDataDarwinLog(const lldb::ProcessWP &process_wp); - StructuredDataDarwinLog(const lldb::ProcessWP &process_wp); + // ------------------------------------------------------------------------- + // Private static methods + // ------------------------------------------------------------------------- - // ------------------------------------------------------------------------- - // Private static methods - // ------------------------------------------------------------------------- + static lldb::StructuredDataPluginSP CreateInstance(Process &process); - static lldb::StructuredDataPluginSP - CreateInstance(Process &process); + static void DebuggerInitialize(Debugger &debugger); - static void - DebuggerInitialize(Debugger &debugger); + static bool InitCompletionHookCallback(void *baton, + StoppointCallbackContext *context, + lldb::user_id_t break_id, + lldb::user_id_t break_loc_id); - static bool - InitCompletionHookCallback(void *baton, StoppointCallbackContext *context, - lldb::user_id_t break_id, - lldb::user_id_t break_loc_id); + static Error FilterLaunchInfo(ProcessLaunchInfo &launch_info, Target *target); - static Error - FilterLaunchInfo(ProcessLaunchInfo &launch_info, Target *target); + // ------------------------------------------------------------------------- + // Internal helper methods used by friend classes + // ------------------------------------------------------------------------- + void SetEnabled(bool enabled); - // ------------------------------------------------------------------------- - // Internal helper methods used by friend classes - // ------------------------------------------------------------------------- - void - SetEnabled(bool enabled); + void AddInitCompletionHook(Process &process); - void - AddInitCompletionHook(Process &process); + // ------------------------------------------------------------------------- + // Private methods + // ------------------------------------------------------------------------- - // ------------------------------------------------------------------------- - // Private methods - // ------------------------------------------------------------------------- + void DumpTimestamp(Stream &stream, uint64_t timestamp); - void - DumpTimestamp(Stream &stream, uint64_t timestamp); + size_t DumpHeader(Stream &stream, const StructuredData::Dictionary &event); - size_t - DumpHeader(Stream &stream, const StructuredData::Dictionary &event); + size_t HandleDisplayOfEvent(const StructuredData::Dictionary &event, + Stream &stream); - size_t - HandleDisplayOfEvent(const StructuredData::Dictionary &event, - Stream &stream); + // ------------------------------------------------------------------------- + /// Call the enable command again, using whatever settings were initially + /// made. + // ------------------------------------------------------------------------- - // ------------------------------------------------------------------------- - /// Call the enable command again, using whatever settings were initially - /// made. - // ------------------------------------------------------------------------- + void EnableNow(); - void - EnableNow(); - - // ------------------------------------------------------------------------- - // Private data - // ------------------------------------------------------------------------- - bool m_recorded_first_timestamp; - uint64_t m_first_timestamp_seen; - bool m_is_enabled; - std::mutex m_added_breakpoint_mutex; - bool m_added_breakpoint; + // ------------------------------------------------------------------------- + // Private data + // ------------------------------------------------------------------------- + bool m_recorded_first_timestamp; + uint64_t m_first_timestamp_seen; + bool m_is_enabled; + std::mutex m_added_breakpoint_mutex; + bool m_added_breakpoint; }; - } #endif /* StructuredDataPluginDarwinLog_hpp */ |