aboutsummaryrefslogtreecommitdiffstats
path: root/tools/lldb-mi/MICmnLLDBDebugger.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lldb-mi/MICmnLLDBDebugger.h')
-rw-r--r--tools/lldb-mi/MICmnLLDBDebugger.h134
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;
-};