diff options
Diffstat (limited to 'tools/lldb-mi/MICmnLLDBDebugger.h')
-rw-r--r-- | tools/lldb-mi/MICmnLLDBDebugger.h | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/tools/lldb-mi/MICmnLLDBDebugger.h b/tools/lldb-mi/MICmnLLDBDebugger.h deleted file mode 100644 index 29cf9416e153..000000000000 --- a/tools/lldb-mi/MICmnLLDBDebugger.h +++ /dev/null @@ -1,134 +0,0 @@ -//===-- MICmnLLDBDebugger.h -------------------------------------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#pragma once - -// Third party headers -#include "lldb/API/SBDebugger.h" -#include "lldb/API/SBEvent.h" -#include "lldb/API/SBListener.h" -#include <condition_variable> -#include <map> -#include <mutex> - -// In-house headers: -#include "MICmnBase.h" -#include "MIUtilSingletonBase.h" -#include "MIUtilThreadBaseStd.h" - -// Declarations: -class CMIDriverBase; -class CMICmnLLDBDebuggerHandleEvents; - -//++ -//============================================================================ -// Details: MI proxy/adapter for the LLDB public SBDebugger API. The CMIDriver -// requires *this object. Command classes make calls on *this object -// to facilitate their work effort. The instance runs in its own worker -// thread. -// A singleton class. -//-- -class CMICmnLLDBDebugger : public CMICmnBase, - public CMIUtilThreadActiveObjBase, - public MI::ISingleton<CMICmnLLDBDebugger> { - friend class MI::ISingleton<CMICmnLLDBDebugger>; - - // Methods: -public: - bool Initialize() override; - bool Shutdown() override; - - bool SetDriver(const CMIDriverBase &vClientDriver); - CMIDriverBase &GetDriver() const; - lldb::SBDebugger &GetTheDebugger(); - lldb::SBListener &GetTheListener(); - void WaitForHandleEvent(); - bool CheckIfNeedToRebroadcastStopEvent(); - void RebroadcastStopEvent(); - - // MI Commands can use these functions to listen for events they require - bool RegisterForEvent(const CMIUtilString &vClientName, - const CMIUtilString &vBroadcasterClass, - const MIuint vEventMask); - bool UnregisterForEvent(const CMIUtilString &vClientName, - const CMIUtilString &vBroadcasterClass); - bool RegisterForEvent(const CMIUtilString &vClientName, - const lldb::SBBroadcaster &vBroadcaster, - const MIuint vEventMask); - bool UnregisterForEvent(const CMIUtilString &vClientName, - const lldb::SBBroadcaster &vBroadcaster); - - // Overridden: -public: - // From CMIUtilThreadActiveObjBase - const CMIUtilString &ThreadGetName() const override; - - // Overridden: -protected: - // From CMIUtilThreadActiveObjBase - bool ThreadRun(bool &vrIsAlive) override; - bool ThreadFinish() override; - - // Typedefs: -private: - typedef std::map<CMIUtilString, MIuint> MapBroadcastClassNameToEventMask_t; - typedef std::pair<CMIUtilString, MIuint> - MapPairBroadcastClassNameToEventMask_t; - typedef std::map<CMIUtilString, MIuint> MapIdToEventMask_t; - typedef std::pair<CMIUtilString, MIuint> MapPairIdToEventMask_t; - - // Methods: -private: - /* ctor */ CMICmnLLDBDebugger(); - /* ctor */ CMICmnLLDBDebugger(const CMICmnLLDBDebugger &); - void operator=(const CMICmnLLDBDebugger &); - - bool InitSBDebugger(); - bool InitSBListener(); - bool InitStdStreams(); - bool MonitorSBListenerEvents(bool &vrbYesExit); - - bool BroadcasterGetMask(const CMIUtilString &vBroadcasterClass, - MIuint &vEventMask) const; - bool BroadcasterRemoveMask(const CMIUtilString &vBroadcasterClass); - bool BroadcasterSaveMask(const CMIUtilString &vBroadcasterClass, - const MIuint vEventMask); - - MIuint - ClientGetMaskForAllClients(const CMIUtilString &vBroadcasterClass) const; - bool ClientSaveMask(const CMIUtilString &vClientName, - const CMIUtilString &vBroadcasterClass, - const MIuint vEventMask); - bool ClientRemoveTheirMask(const CMIUtilString &vClientName, - const CMIUtilString &vBroadcasterClass); - bool ClientGetTheirMask(const CMIUtilString &vClientName, - const CMIUtilString &vBroadcasterClass, - MIuint &vwEventMask); - bool LoadMIFormatters(lldb::SBTypeCategory miCategory); - bool RegisterMISummaryProviders(); - // Overridden: -private: - // From CMICmnBase - /* dtor */ ~CMICmnLLDBDebugger() override; - - // Attributes: -private: - CMIDriverBase - *m_pClientDriver; // The driver that wants to use *this LLDB debugger - lldb::SBDebugger m_lldbDebugger; // SBDebugger is the primordial object that - // creates SBTargets and provides access to - // them - lldb::SBListener m_lldbListener; // API clients can register its own listener - // to debugger events - const CMIUtilString m_constStrThisThreadId; - MapBroadcastClassNameToEventMask_t m_mapBroadcastClassNameToEventMask; - MapIdToEventMask_t m_mapIdToEventMask; - std::mutex m_mutexEventQueue; - std::condition_variable m_conditionEventQueueEmpty; - uint32_t m_nLastStopId; -}; |