Index: CMakeLists.txt =================================================================== --- CMakeLists.txt +++ CMakeLists.txt @@ -152,6 +152,7 @@ -wd4018 # Suppress 'warning C4018: '>=' : signed/unsigned mismatch' -wd4068 # Suppress 'warning C4068: unknown pragma' -wd4150 # Suppress 'warning C4150: deletion of pointer to incomplete type' + -wd4251 # Suppress 'warning C4251: T must have dll-interface to be used by clients of class U.' -wd4521 # Suppress 'warning C4521: 'type' : multiple copy constructors specified' -wd4530 # Suppress 'warning C4530: C++ exception handler used, but unwind semantics are not enabled.' ) Index: include/lldb/API/SBDebugger.h =================================================================== --- include/lldb/API/SBDebugger.h +++ include/lldb/API/SBDebugger.h @@ -15,6 +15,8 @@ #include "lldb/API/SBDefines.h" #include "lldb/API/SBPlatform.h" +class CommandPluginInterfaceImplementation; + namespace lldb { @@ -54,11 +56,8 @@ MemoryPressureDetected (); SBDebugger(); - SBDebugger(const lldb::SBDebugger &rhs); - SBDebugger(const lldb::DebuggerSP &debugger_sp); - lldb::SBDebugger & operator = (const lldb::SBDebugger &rhs); @@ -329,7 +328,13 @@ friend class SBProcess; friend class SBSourceManager; friend class SBTarget; - + friend class CommandPluginInterfaceImplementation; + + SBDebugger(const lldb::DebuggerSP &debugger_sp); + + static lldb::DynamicLibrarySP + LoadPlugin (const lldb::DebuggerSP &debugger_sp, const lldb_private::FileSpec& spec, lldb_private::Error& error); + lldb::SBTarget FindTargetWithLLDBProcess (const lldb::ProcessSP &processSP); Index: include/lldb/API/SBFrame.h =================================================================== --- include/lldb/API/SBFrame.h +++ include/lldb/API/SBFrame.h @@ -216,8 +216,6 @@ bool GetDescription (lldb::SBStream &description); - SBFrame (const lldb::StackFrameSP &lldb_object_sp); - protected: friend class SBBlock; @@ -228,6 +226,8 @@ friend class lldb_private::ScriptInterpreterPython; #endif + SBFrame (const lldb::StackFrameSP &lldb_object_sp); + lldb::StackFrameSP GetFrameSP() const; Index: include/lldb/API/SBProcess.h =================================================================== --- include/lldb/API/SBProcess.h +++ include/lldb/API/SBProcess.h @@ -42,8 +42,6 @@ const lldb::SBProcess& operator = (const lldb::SBProcess& rhs); - SBProcess (const lldb::ProcessSP &process_sp); - ~SBProcess(); static const char * @@ -327,6 +325,8 @@ friend class SBValue; friend class lldb_private::QueueImpl; + SBProcess (const lldb::ProcessSP &process_sp); + lldb::ProcessSP GetSP() const; Index: include/lldb/API/SBQueueItem.h =================================================================== --- include/lldb/API/SBQueueItem.h +++ include/lldb/API/SBQueueItem.h @@ -20,8 +20,6 @@ public: SBQueueItem (); - SBQueueItem (const lldb::QueueItemSP& queue_item_sp); - ~SBQueueItem(); bool @@ -42,13 +40,17 @@ void SetAddress (lldb::SBAddress addr); - void - SetQueueItem (const lldb::QueueItemSP& queue_item_sp); - SBThread GetExtendedBacktraceThread (const char *type); private: + friend class lldb_private::QueueImpl; + + SBQueueItem(const QueueItemSP& queue_item_sp); + + void + SetQueueItem (const lldb::QueueItemSP& queue_item_sp); + lldb::QueueItemSP m_queue_item_sp; }; Index: include/lldb/API/SBTarget.h =================================================================== --- include/lldb/API/SBTarget.h +++ include/lldb/API/SBTarget.h @@ -283,8 +283,6 @@ SBTarget (const lldb::SBTarget& rhs); - SBTarget (const lldb::TargetSP& target_sp); - const lldb::SBTarget& operator = (const lldb::SBTarget& rhs); @@ -900,6 +898,7 @@ // Constructors are private, use static Target::Create function to // create an instance of this class. //------------------------------------------------------------------ + SBTarget (const lldb::TargetSP& target_sp); lldb::TargetSP GetSP () const; Index: include/lldb/API/SBThread.h =================================================================== --- include/lldb/API/SBThread.h +++ include/lldb/API/SBThread.h @@ -37,8 +37,6 @@ SBThread (const lldb::SBThread &thread); - SBThread (const lldb::ThreadSP& lldb_object_sp); - ~SBThread(); lldb::SBQueue @@ -223,6 +221,8 @@ friend class lldb_private::QueueImpl; friend class SBQueueItem; + SBThread (const lldb::ThreadSP& lldb_object_sp); + void SetThread (const lldb::ThreadSP& lldb_object_sp); Index: include/lldb/API/SBValue.h =================================================================== --- include/lldb/API/SBValue.h +++ include/lldb/API/SBValue.h @@ -356,8 +356,6 @@ GetExpressionPath (lldb::SBStream &description, bool qualify_cxx_base_classes); - SBValue (const lldb::ValueObjectSP &value_sp); - //------------------------------------------------------------------ /// Watch this value if it resides in memory. /// @@ -420,8 +418,18 @@ lldb::SBWatchpoint WatchPointee (bool resolve_location, bool read, bool write, SBError &error); +protected: + friend class SBBlock; + friend class SBFrame; + friend class SBModule; + friend class SBTarget; + friend class SBThread; + friend class SBValueList; + + SBValue (const lldb::ValueObjectSP &value_sp); + //------------------------------------------------------------------ - /// Same as the protected version of GetSP that takes a locker, except that we make the + /// Same as the version of GetSP that takes a locker, except that we make the /// locker locally in the function. Since the Target API mutex is recursive, and the /// StopLocker is a read lock, you can call this function even if you are already /// holding the two above-mentioned locks. @@ -433,13 +441,6 @@ lldb::ValueObjectSP GetSP () const; -protected: - friend class SBBlock; - friend class SBFrame; - friend class SBTarget; - friend class SBThread; - friend class SBValueList; - //------------------------------------------------------------------ /// Get the appropriate ValueObjectSP from this SBValue, consulting the /// use_dynamic and use_synthetic options passed in to SetSP when the Index: include/lldb/API/SBWatchpoint.h =================================================================== --- include/lldb/API/SBWatchpoint.h +++ include/lldb/API/SBWatchpoint.h @@ -22,8 +22,6 @@ SBWatchpoint (const lldb::SBWatchpoint &rhs); - SBWatchpoint (const lldb::WatchpointSP &wp_sp); - ~SBWatchpoint (); const lldb::SBWatchpoint & @@ -75,12 +73,6 @@ void Clear (); - lldb::WatchpointSP - GetSP () const; - - void - SetSP (const lldb::WatchpointSP &sp); - static bool EventIsWatchpointEvent (const lldb::SBEvent &event); @@ -94,6 +86,13 @@ friend class SBTarget; friend class SBValue; + SBWatchpoint (const lldb::WatchpointSP &wp_sp); + + lldb::WatchpointSP + GetSP () const; + + void + SetSP (const lldb::WatchpointSP &sp); lldb::WatchpointSP m_opaque_sp; Index: source/API/SBDebugger.cpp =================================================================== --- source/API/SBDebugger.cpp +++ source/API/SBDebugger.cpp @@ -72,8 +72,8 @@ return false; } -static lldb::DynamicLibrarySP -LoadPlugin (const lldb::DebuggerSP &debugger_sp, const FileSpec& spec, Error& error) +lldb::DynamicLibrarySP +SBDebugger::LoadPlugin (const lldb::DebuggerSP &debugger_sp, const FileSpec& spec, Error& error) { lldb::DynamicLibrarySP dynlib_sp(new lldb_private::DynamicLibrary(spec)); if (dynlib_sp && dynlib_sp->IsValid())