Index: include/lldb/Utility/History.h =================================================================== --- include/lldb/Utility/History.h +++ /dev/null @@ -1,136 +0,0 @@ -//===-- History.h -----------------------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef lldb_History_h_ -#define lldb_History_h_ - -#include "lldb/lldb-defines.h" // for DISALLOW_COPY_AND_ASSIGN - -// C++ Includes -#include -#include -#include - -#include // for size_t -#include - -namespace lldb_private { -class Stream; -} - -namespace lldb_private { - -//---------------------------------------------------------------------- -/// @class HistorySource History.h "lldb/Core/History.h" -/// A class that defines history events. -//---------------------------------------------------------------------- - -class HistorySource { -public: - typedef const void *HistoryEvent; - - HistorySource() : m_mutex(), m_events() {} - - virtual ~HistorySource() {} - - // Create a new history event. Subclasses should use any data or members in - // the subclass of this class to produce a history event and push it onto the - // end of the history stack. - - virtual HistoryEvent CreateHistoryEvent() = 0; - - virtual void DeleteHistoryEvent(HistoryEvent event) = 0; - - virtual void DumpHistoryEvent(Stream &strm, HistoryEvent event) = 0; - - virtual size_t GetHistoryEventCount() = 0; - - virtual HistoryEvent GetHistoryEventAtIndex(uint32_t idx) = 0; - - virtual HistoryEvent GetCurrentHistoryEvent() = 0; - - // Return 0 when lhs == rhs, 1 if lhs > rhs, or -1 if lhs < rhs. - virtual int CompareHistoryEvents(const HistoryEvent lhs, - const HistoryEvent rhs) = 0; - - virtual bool IsCurrentHistoryEvent(const HistoryEvent event) = 0; - -private: - typedef std::stack collection; - - std::recursive_mutex m_mutex; - collection m_events; - - DISALLOW_COPY_AND_ASSIGN(HistorySource); -}; - -//---------------------------------------------------------------------- -/// @class HistorySourceUInt History.h "lldb/Core/History.h" -/// A class that defines history events that are represented by -/// unsigned integers. -/// -/// Any history event that is defined by a unique monotonically increasing -/// unsigned integer -//---------------------------------------------------------------------- - -class HistorySourceUInt : public HistorySource { - HistorySourceUInt(const char *id_name, uintptr_t start_value = 0u) - : HistorySource(), m_name(id_name), m_curr_id(start_value) {} - - ~HistorySourceUInt() override {} - - // Create a new history event. Subclasses should use any data or members in - // the subclass of this class to produce a history event and push it onto the - // end of the history stack. - - HistoryEvent CreateHistoryEvent() override { - ++m_curr_id; - return (HistoryEvent)m_curr_id; - } - - void DeleteHistoryEvent(HistoryEvent event) override { - // Nothing to delete, the event contains the integer - } - - void DumpHistoryEvent(Stream &strm, HistoryEvent event) override; - - size_t GetHistoryEventCount() override { return m_curr_id; } - - HistoryEvent GetHistoryEventAtIndex(uint32_t idx) override { - return (HistoryEvent)((uintptr_t)idx); - } - - HistoryEvent GetCurrentHistoryEvent() override { - return (HistoryEvent)m_curr_id; - } - - // Return 0 when lhs == rhs, 1 if lhs > rhs, or -1 if lhs < rhs. - int CompareHistoryEvents(const HistoryEvent lhs, - const HistoryEvent rhs) override { - uintptr_t lhs_uint = (uintptr_t)lhs; - uintptr_t rhs_uint = (uintptr_t)rhs; - if (lhs_uint < rhs_uint) - return -1; - if (lhs_uint > rhs_uint) - return +1; - return 0; - } - - bool IsCurrentHistoryEvent(const HistoryEvent event) override { - return (uintptr_t)event == m_curr_id; - } - -protected: - std::string m_name; // The name of the history unsigned integer - uintptr_t m_curr_id; // The current value of the history unsigned unteger -}; - -} // namespace lldb_private - -#endif // lldb_History_h_ Index: lldb.xcodeproj/project.pbxproj =================================================================== --- lldb.xcodeproj/project.pbxproj +++ lldb.xcodeproj/project.pbxproj @@ -1880,8 +1880,6 @@ 26A0DA4D140F721D006DA411 /* HashedNameToDIE.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HashedNameToDIE.h; sourceTree = ""; }; 2666ADC31B3CB675001FAFD3 /* HexagonDYLDRendezvous.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HexagonDYLDRendezvous.cpp; sourceTree = ""; }; 2666ADC41B3CB675001FAFD3 /* HexagonDYLDRendezvous.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HexagonDYLDRendezvous.h; sourceTree = ""; }; - AFC2DCF21E6E30CF00283714 /* History.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = History.cpp; path = source/Utility/History.cpp; sourceTree = ""; }; - AFC2DCF41E6E30D800283714 /* History.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = History.h; path = include/lldb/Utility/History.h; sourceTree = ""; }; AF1729D4182C907200E0AB97 /* HistoryThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = HistoryThread.cpp; path = Utility/HistoryThread.cpp; sourceTree = ""; }; AF061F89182C980000B6A19C /* HistoryThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HistoryThread.h; path = Utility/HistoryThread.h; sourceTree = ""; }; AF1729D5182C907200E0AB97 /* HistoryUnwind.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = HistoryUnwind.cpp; path = Utility/HistoryUnwind.cpp; sourceTree = ""; }; Index: source/Utility/CMakeLists.txt =================================================================== --- source/Utility/CMakeLists.txt +++ source/Utility/CMakeLists.txt @@ -53,7 +53,6 @@ Environment.cpp FastDemangle.cpp FileSpec.cpp - History.cpp IOObject.cpp JSON.cpp LLDBAssert.cpp Index: source/Utility/History.cpp =================================================================== --- source/Utility/History.cpp +++ /dev/null @@ -1,24 +0,0 @@ -//===-- History.cpp ---------------------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include "lldb/Utility/History.h" - -// C Includes -#include -// C++ Includes -// Other libraries and framework includes -// Project includes -#include "lldb/Utility/Stream.h" - -using namespace lldb; -using namespace lldb_private; - -void HistorySourceUInt::DumpHistoryEvent(Stream &strm, HistoryEvent event) { - strm.Printf("%s %" PRIu64, m_name.c_str(), (uint64_t)((uintptr_t)event)); -}