diff options
| author | Ed Maste <emaste@FreeBSD.org> | 2015-07-03 16:57:06 +0000 |
|---|---|---|
| committer | Ed Maste <emaste@FreeBSD.org> | 2015-07-03 16:57:06 +0000 |
| commit | 5e95aa85bb660d45e9905ef1d7180b2678280660 (patch) | |
| tree | 3c2e41c3be19b7fc7666ed45a5f91ec3b6e35f2a /include/lldb/API | |
| parent | 12bd4897ff0678fa663e09d78ebc22dd255ceb86 (diff) | |
Notes
Diffstat (limited to 'include/lldb/API')
61 files changed, 515 insertions, 212 deletions
diff --git a/include/lldb/API/LLDB.h b/include/lldb/API/LLDB.h index 4026b2b61ba8..66e095395f13 100644 --- a/include/lldb/API/LLDB.h +++ b/include/lldb/API/LLDB.h @@ -52,5 +52,6 @@ #include "lldb/API/SBType.h" #include "lldb/API/SBValue.h" #include "lldb/API/SBValueList.h" +#include "lldb/API/SBVariablesOptions.h" #endif // LLDB_LLDB_h_ diff --git a/include/lldb/API/SBAddress.h b/include/lldb/API/SBAddress.h index c2d07b6e9bcc..4cbbee9fd132 100644 --- a/include/lldb/API/SBAddress.h +++ b/include/lldb/API/SBAddress.h @@ -15,7 +15,7 @@ namespace lldb { -class SBAddress +class LLDB_API SBAddress { public: diff --git a/include/lldb/API/SBAttachInfo.h b/include/lldb/API/SBAttachInfo.h new file mode 100644 index 000000000000..712150e128be --- /dev/null +++ b/include/lldb/API/SBAttachInfo.h @@ -0,0 +1,149 @@ +//===-- SBAttachInfo.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_SBAttachInfo_h_ +#define LLDB_SBAttachInfo_h_ + +#include "lldb/API/SBDefines.h" + +namespace lldb { + +class SBTarget; + +class LLDB_API SBAttachInfo +{ +public: + SBAttachInfo (); + + SBAttachInfo (lldb::pid_t pid); + + SBAttachInfo (const char *path, bool wait_for); + + SBAttachInfo (const SBAttachInfo &rhs); + + ~SBAttachInfo(); + + SBAttachInfo & + operator = (const SBAttachInfo &rhs); + + lldb::pid_t + GetProcessID (); + + void + SetProcessID (lldb::pid_t pid); + + void + SetExecutable (const char *path); + + void + SetExecutable (lldb::SBFileSpec exe_file); + + bool + GetWaitForLaunch (); + + void + SetWaitForLaunch (bool b); + + bool + GetIgnoreExisting (); + + void + SetIgnoreExisting (bool b); + + uint32_t + GetResumeCount (); + + void + SetResumeCount (uint32_t c); + + const char * + GetProcessPluginName (); + + void + SetProcessPluginName (const char *plugin_name); + + uint32_t + GetUserID(); + + uint32_t + GetGroupID(); + + bool + UserIDIsValid (); + + bool + GroupIDIsValid (); + + void + SetUserID (uint32_t uid); + + void + SetGroupID (uint32_t gid); + + uint32_t + GetEffectiveUserID(); + + uint32_t + GetEffectiveGroupID(); + + bool + EffectiveUserIDIsValid (); + + bool + EffectiveGroupIDIsValid (); + + void + SetEffectiveUserID (uint32_t uid); + + void + SetEffectiveGroupID (uint32_t gid); + + lldb::pid_t + GetParentProcessID (); + + void + SetParentProcessID (lldb::pid_t pid); + + bool + ParentProcessIDIsValid(); + + //---------------------------------------------------------------------- + /// Get the listener that will be used to receive process events. + /// + /// If no listener has been set via a call to + /// SBLaunchInfo::SetListener(), then an invalid SBListener will be + /// returned (SBListener::IsValid() will return false). If a listener + /// has been set, then the valid listener object will be returned. + //---------------------------------------------------------------------- + SBListener + GetListener (); + + //---------------------------------------------------------------------- + /// Set the listener that will be used to receive process events. + /// + /// By default the SBDebugger, which has a listener, that the SBTarget + /// belongs to will listen for the process events. Calling this function + /// allows a different listener to be used to listen for process events. + //---------------------------------------------------------------------- + void + SetListener (SBListener &listener); + + +protected: + friend class SBTarget; + + lldb_private::ProcessAttachInfo & + ref (); + + ProcessAttachInfoSP m_opaque_sp; +}; + +} // namespace lldb + +#endif // LLDB_SBAttachInfo_h_ diff --git a/include/lldb/API/SBBlock.h b/include/lldb/API/SBBlock.h index b8e61fc6eb27..a18eab02088b 100644 --- a/include/lldb/API/SBBlock.h +++ b/include/lldb/API/SBBlock.h @@ -17,7 +17,7 @@ namespace lldb { -class SBBlock +class LLDB_API SBBlock { public: diff --git a/include/lldb/API/SBBreakpoint.h b/include/lldb/API/SBBreakpoint.h index 20a97a1fb5a0..c244ab8a9b48 100644 --- a/include/lldb/API/SBBreakpoint.h +++ b/include/lldb/API/SBBreakpoint.h @@ -14,7 +14,7 @@ namespace lldb { -class SBBreakpoint +class LLDB_API SBBreakpoint { public: diff --git a/include/lldb/API/SBBreakpointLocation.h b/include/lldb/API/SBBreakpointLocation.h index fd9f246de4ff..ab7049739c0b 100644 --- a/include/lldb/API/SBBreakpointLocation.h +++ b/include/lldb/API/SBBreakpointLocation.h @@ -15,7 +15,7 @@ namespace lldb { -class SBBreakpointLocation +class LLDB_API SBBreakpointLocation { public: @@ -101,9 +101,7 @@ public: private: friend class SBBreakpoint; -#ifndef LLDB_DISABLE_PYTHON - friend class lldb_private::ScriptInterpreterPython; -#endif + void SetLocation (const lldb::BreakpointLocationSP &break_loc_sp); diff --git a/include/lldb/API/SBBroadcaster.h b/include/lldb/API/SBBroadcaster.h index 7b32d85faa0f..28b6686b79b3 100644 --- a/include/lldb/API/SBBroadcaster.h +++ b/include/lldb/API/SBBroadcaster.h @@ -14,7 +14,7 @@ namespace lldb { -class SBBroadcaster +class LLDB_API SBBroadcaster { public: SBBroadcaster (); diff --git a/include/lldb/API/SBCommandInterpreter.h b/include/lldb/API/SBCommandInterpreter.h index 947e39164140..235a2f3ea603 100644 --- a/include/lldb/API/SBCommandInterpreter.h +++ b/include/lldb/API/SBCommandInterpreter.h @@ -15,7 +15,7 @@ namespace lldb { -class SBCommandInterpreterRunOptions +class LLDB_API SBCommandInterpreterRunOptions { friend class SBDebugger; friend class SBCommandInterpreter; @@ -94,6 +94,9 @@ public: static const char * GetArgumentDescriptionAsCString (const lldb::CommandArgumentType arg_type); + + static bool + EventIsCommandInterpreterEvent (const lldb::SBEvent &event); bool IsValid() const; @@ -216,6 +219,19 @@ public: const char * GetIOHandlerControlSequence(char ch); + bool + GetPromptOnQuit(); + + void + SetPromptOnQuit(bool b); + + //---------------------------------------------------------------------- + /// Resolve the command just as HandleCommand would, expanding abbreviations + /// and aliases. If successful, result->GetOutput has the full expansion. + //---------------------------------------------------------------------- + void + ResolveCommand(const char *command_line, SBCommandReturnObject &result); + protected: lldb_private::CommandInterpreter & @@ -266,6 +282,21 @@ public: const char* GetHelp (); + const char* + GetHelpLong (); + + void + SetHelp (const char*); + + void + SetHelpLong (const char*); + + uint32_t + GetFlags (); + + void + SetFlags (uint32_t flags); + lldb::SBCommand AddMultiwordCommand (const char* name, const char* help = NULL); diff --git a/include/lldb/API/SBCommandReturnObject.h b/include/lldb/API/SBCommandReturnObject.h index f2d274802330..c51d6bc8d2d5 100644 --- a/include/lldb/API/SBCommandReturnObject.h +++ b/include/lldb/API/SBCommandReturnObject.h @@ -16,7 +16,7 @@ namespace lldb { -class SBCommandReturnObject +class LLDB_API SBCommandReturnObject { public: diff --git a/include/lldb/API/SBCommunication.h b/include/lldb/API/SBCommunication.h index ecaaa3523c91..c4b2709de8ab 100644 --- a/include/lldb/API/SBCommunication.h +++ b/include/lldb/API/SBCommunication.h @@ -15,10 +15,11 @@ namespace lldb { -class SBCommunication +class LLDB_API SBCommunication { public: - enum { + FLAGS_ANONYMOUS_ENUM() + { eBroadcastBitDisconnected = (1 << 0), ///< Sent when the communications connection is lost. eBroadcastBitReadThreadGotBytes = (1 << 1), ///< Sent by the read thread when bytes become available. eBroadcastBitReadThreadDidExit = (1 << 2), ///< Sent by the read thread when it exits to inform clients. diff --git a/include/lldb/API/SBCompileUnit.h b/include/lldb/API/SBCompileUnit.h index e2c216445d94..a53d556679c4 100644 --- a/include/lldb/API/SBCompileUnit.h +++ b/include/lldb/API/SBCompileUnit.h @@ -15,7 +15,7 @@ namespace lldb { -class SBCompileUnit +class LLDB_API SBCompileUnit { public: diff --git a/include/lldb/API/SBData.h b/include/lldb/API/SBData.h index e7656a52d9c2..a2bd72fad570 100644 --- a/include/lldb/API/SBData.h +++ b/include/lldb/API/SBData.h @@ -14,7 +14,7 @@ namespace lldb { -class SBData +class LLDB_API SBData { public: diff --git a/include/lldb/API/SBDebugger.h b/include/lldb/API/SBDebugger.h index 6e43e12f7b16..4f2c1d7f8756 100644 --- a/include/lldb/API/SBDebugger.h +++ b/include/lldb/API/SBDebugger.h @@ -18,7 +18,7 @@ namespace lldb { -class SBInputReader +class LLDB_API SBInputReader { public: SBInputReader(); @@ -28,7 +28,7 @@ public: bool IsActive() const; }; -class SBDebugger +class LLDB_API SBDebugger { public: diff --git a/include/lldb/API/SBDeclaration.h b/include/lldb/API/SBDeclaration.h index 190026c0d2d0..5461a1f15c2e 100644 --- a/include/lldb/API/SBDeclaration.h +++ b/include/lldb/API/SBDeclaration.h @@ -15,7 +15,7 @@ namespace lldb { - class SBDeclaration + class LLDB_API SBDeclaration { public: diff --git a/include/lldb/API/SBDefines.h b/include/lldb/API/SBDefines.h index b59b79580910..09bea502dd01 100644 --- a/include/lldb/API/SBDefines.h +++ b/include/lldb/API/SBDefines.h @@ -55,6 +55,8 @@ class LLDB_API SBFunction; class LLDB_API SBHostOS; class LLDB_API SBInstruction; class LLDB_API SBInstructionList; +class LLDB_API SBLanguageRuntime; +class LLDB_API SBLaunchInfo; class LLDB_API SBLineEntry; class LLDB_API SBListener; class LLDB_API SBModule; @@ -90,6 +92,7 @@ class LLDB_API SBTypeSynthetic; class LLDB_API SBTypeList; class LLDB_API SBValue; class LLDB_API SBValueList; +class LLDB_API SBVariablesOptions; class LLDB_API SBWatchpoint; class LLDB_API SBUnixSignals; diff --git a/include/lldb/API/SBError.h b/include/lldb/API/SBError.h index b9908658c5bc..afdec0d3826d 100644 --- a/include/lldb/API/SBError.h +++ b/include/lldb/API/SBError.h @@ -14,7 +14,7 @@ namespace lldb { -class SBError { +class LLDB_API SBError { public: SBError (); diff --git a/include/lldb/API/SBEvent.h b/include/lldb/API/SBEvent.h index 1706d0c009b9..975c365f5916 100644 --- a/include/lldb/API/SBEvent.h +++ b/include/lldb/API/SBEvent.h @@ -20,7 +20,7 @@ namespace lldb { class SBBroadcaster; -class SBEvent +class LLDB_API SBEvent { public: SBEvent(); @@ -78,6 +78,7 @@ protected: friend class SBBreakpoint; friend class SBDebugger; friend class SBProcess; + friend class SBTarget; friend class SBThread; friend class SBWatchpoint; diff --git a/include/lldb/API/SBExecutionContext.h b/include/lldb/API/SBExecutionContext.h index 9d889139f5cb..1d64497ae867 100644 --- a/include/lldb/API/SBExecutionContext.h +++ b/include/lldb/API/SBExecutionContext.h @@ -18,7 +18,7 @@ namespace lldb { -class SBExecutionContext +class LLDB_API SBExecutionContext { friend class SBCommandInterpreter; diff --git a/include/lldb/API/SBExpressionOptions.h b/include/lldb/API/SBExpressionOptions.h index c3592880c46a..ed2f9187b3e0 100644 --- a/include/lldb/API/SBExpressionOptions.h +++ b/include/lldb/API/SBExpressionOptions.h @@ -17,7 +17,7 @@ namespace lldb { -class SBExpressionOptions +class LLDB_API SBExpressionOptions { public: SBExpressionOptions(); @@ -105,6 +105,12 @@ public: void SetSuppressPersistentResult (bool b = false); + const char * + GetPrefix () const; + + void + SetPrefix (const char *prefix); + protected: SBExpressionOptions (lldb_private::EvaluateExpressionOptions &expression_options); diff --git a/include/lldb/API/SBFileSpec.h b/include/lldb/API/SBFileSpec.h index 1eee3d10367c..d6f38f5b2d74 100644 --- a/include/lldb/API/SBFileSpec.h +++ b/include/lldb/API/SBFileSpec.h @@ -14,7 +14,7 @@ namespace lldb { -class SBFileSpec +class LLDB_API SBFileSpec { public: SBFileSpec (); diff --git a/include/lldb/API/SBFileSpecList.h b/include/lldb/API/SBFileSpecList.h index 734e7d4d35cc..ff429a1815be 100644 --- a/include/lldb/API/SBFileSpecList.h +++ b/include/lldb/API/SBFileSpecList.h @@ -14,7 +14,7 @@ namespace lldb { -class SBFileSpecList +class LLDB_API SBFileSpecList { public: SBFileSpecList (); diff --git a/include/lldb/API/SBFrame.h b/include/lldb/API/SBFrame.h index b93e36afecdf..2ca9e062490d 100644 --- a/include/lldb/API/SBFrame.h +++ b/include/lldb/API/SBFrame.h @@ -15,7 +15,7 @@ namespace lldb { -class SBFrame +class LLDB_API SBFrame { public: SBFrame (); @@ -25,7 +25,7 @@ public: const lldb::SBFrame & operator =(const lldb::SBFrame &rhs); - ~SBFrame(); + ~SBFrame(); bool IsEqual (const lldb::SBFrame &that) const; @@ -37,6 +37,9 @@ public: GetFrameID () const; lldb::addr_t + GetCFA () const; + + lldb::addr_t GetPC () const; bool @@ -88,12 +91,18 @@ public: const char * GetFunctionName(); + const char * + GetFunctionName() const; + /// Return true if this frame represents an inlined function. /// /// See also GetFunctionName(). bool IsInlined(); - + + bool + IsInlined() const; + /// The version that doesn't supply a 'use_dynamic' value will use the /// target's default. lldb::SBValue @@ -157,6 +166,9 @@ public: lldb::DynamicValueType use_dynamic); lldb::SBValueList + GetVariables (const lldb::SBVariablesOptions& options); + + lldb::SBValueList GetRegisters (); lldb::SBValue @@ -210,9 +222,6 @@ protected: friend class SBInstruction; friend class SBThread; friend class SBValue; -#ifndef LLDB_DISABLE_PYTHON - friend class lldb_private::ScriptInterpreterPython; -#endif lldb::StackFrameSP GetFrameSP() const; diff --git a/include/lldb/API/SBFunction.h b/include/lldb/API/SBFunction.h index 1b0d53d11736..7d578393eb2c 100644 --- a/include/lldb/API/SBFunction.h +++ b/include/lldb/API/SBFunction.h @@ -16,7 +16,7 @@ namespace lldb { -class SBFunction +class LLDB_API SBFunction { public: diff --git a/include/lldb/API/SBHostOS.h b/include/lldb/API/SBHostOS.h index 7ab22caaaad9..d9bc97365632 100644 --- a/include/lldb/API/SBHostOS.h +++ b/include/lldb/API/SBHostOS.h @@ -15,7 +15,7 @@ namespace lldb { -class SBHostOS +class LLDB_API SBHostOS { public: diff --git a/include/lldb/API/SBInstruction.h b/include/lldb/API/SBInstruction.h index aad2d87f4f33..c4bded595761 100644 --- a/include/lldb/API/SBInstruction.h +++ b/include/lldb/API/SBInstruction.h @@ -20,7 +20,7 @@ namespace lldb { -class SBInstruction +class LLDB_API SBInstruction { public: diff --git a/include/lldb/API/SBInstructionList.h b/include/lldb/API/SBInstructionList.h index 944e144a1480..8ef163796629 100644 --- a/include/lldb/API/SBInstructionList.h +++ b/include/lldb/API/SBInstructionList.h @@ -16,7 +16,7 @@ namespace lldb { -class SBInstructionList +class LLDB_API SBInstructionList { public: diff --git a/include/lldb/API/SBLanguageRuntime.h b/include/lldb/API/SBLanguageRuntime.h new file mode 100644 index 000000000000..898604c496fa --- /dev/null +++ b/include/lldb/API/SBLanguageRuntime.h @@ -0,0 +1,29 @@ +//===-- SBLanguageRuntime.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_SBLanguageRuntime_h_ +#define LLDB_SBLanguageRuntime_h_ + +#include "lldb/API/SBDefines.h" + +namespace lldb { + +class SBLanguageRuntime +{ +public: + static lldb::LanguageType + GetLanguageTypeFromString (const char *string); + + static const char * + GetNameForLanguageType (lldb::LanguageType language); +}; + +} // namespace lldb + +#endif // LLDB_SBLanguageRuntime_h_ diff --git a/include/lldb/API/SBLaunchInfo.h b/include/lldb/API/SBLaunchInfo.h index a5921ab90d48..68c0f386acde 100644 --- a/include/lldb/API/SBLaunchInfo.h +++ b/include/lldb/API/SBLaunchInfo.h @@ -17,7 +17,7 @@ namespace lldb { class SBPlatform; class SBTarget; -class SBLaunchInfo +class LLDB_API SBLaunchInfo { public: SBLaunchInfo (const char **argv); @@ -140,7 +140,13 @@ public: void SetShell (const char * path); - + + bool + GetShellExpandArguments (); + + void + SetShellExpandArguments (bool glob); + uint32_t GetResumeCount (); @@ -178,6 +184,9 @@ protected: lldb_private::ProcessLaunchInfo & ref (); + const lldb_private::ProcessLaunchInfo & + ref () const; + ProcessLaunchInfoSP m_opaque_sp; }; diff --git a/include/lldb/API/SBLineEntry.h b/include/lldb/API/SBLineEntry.h index 2d099a297980..8311bbbafc90 100644 --- a/include/lldb/API/SBLineEntry.h +++ b/include/lldb/API/SBLineEntry.h @@ -16,7 +16,7 @@ namespace lldb { -class SBLineEntry +class LLDB_API SBLineEntry { public: diff --git a/include/lldb/API/SBListener.h b/include/lldb/API/SBListener.h index 58a8fe9a55b7..924f8109f638 100644 --- a/include/lldb/API/SBListener.h +++ b/include/lldb/API/SBListener.h @@ -14,7 +14,7 @@ namespace lldb { -class SBListener +class LLDB_API SBListener { public: SBListener (); diff --git a/include/lldb/API/SBModule.h b/include/lldb/API/SBModule.h index e85654bccc72..4030d2b21797 100644 --- a/include/lldb/API/SBModule.h +++ b/include/lldb/API/SBModule.h @@ -18,7 +18,7 @@ namespace lldb { -class SBModule +class LLDB_API SBModule { public: @@ -106,7 +106,7 @@ public: /// or "./usr/lib", then the install path will be resolved using /// the platform's current working directory as the base path. /// - /// @param[in] + /// @param[in] file /// A file specification object. //------------------------------------------------------------------ bool @@ -318,6 +318,23 @@ public: GetVersion (uint32_t *versions, uint32_t num_versions); + //------------------------------------------------------------------ + /// Get accessor for the symbol file specification. + /// + /// When debugging an object file an additional debug information can + /// be provided in separate file. Therefore if you debugging something + /// like '/usr/lib/liba.dylib' then debug information can be located + /// in folder like '/usr/lib/liba.dylib.dSYM/'. + /// + /// @return + /// A const reference to the file specification object. + //------------------------------------------------------------------ + lldb::SBFileSpec + GetSymbolFileSpec() const; + + lldb::SBAddress + GetObjectFileHeaderAddress() const; + private: friend class SBAddress; friend class SBFrame; diff --git a/include/lldb/API/SBModuleSpec.h b/include/lldb/API/SBModuleSpec.h index a615e017cbc8..d533de3c7bce 100644 --- a/include/lldb/API/SBModuleSpec.h +++ b/include/lldb/API/SBModuleSpec.h @@ -15,7 +15,7 @@ namespace lldb { -class SBModuleSpec +class LLDB_API SBModuleSpec { public: diff --git a/include/lldb/API/SBPlatform.h b/include/lldb/API/SBPlatform.h index 42b2d0492895..db4a754103ca 100644 --- a/include/lldb/API/SBPlatform.h +++ b/include/lldb/API/SBPlatform.h @@ -21,7 +21,7 @@ namespace lldb { class SBLaunchInfo; - class SBPlatformConnectOptions + class LLDB_API SBPlatformConnectOptions { public: SBPlatformConnectOptions (const char *url); @@ -59,7 +59,7 @@ namespace lldb { PlatformConnectOptions *m_opaque_ptr; }; - class SBPlatformShellCommand + class LLDB_API SBPlatformShellCommand { public: SBPlatformShellCommand (const char *shell_command); @@ -104,7 +104,7 @@ namespace lldb { PlatformShellCommand *m_opaque_ptr; }; - class SBPlatform + class LLDB_API SBPlatform { public: diff --git a/include/lldb/API/SBProcess.h b/include/lldb/API/SBProcess.h index 3d6e49c4821d..71bca4fc697a 100644 --- a/include/lldb/API/SBProcess.h +++ b/include/lldb/API/SBProcess.h @@ -20,13 +20,13 @@ namespace lldb { class SBEvent; -class SBProcess +class LLDB_API SBProcess { public: //------------------------------------------------------------------ /// Broadcaster event bits definitions. //------------------------------------------------------------------ - enum + FLAGS_ANONYMOUS_ENUM() { eBroadcastBitStateChanged = (1 << 0), eBroadcastBitInterrupt = (1 << 1), @@ -229,7 +229,22 @@ public: uint32_t GetStopID(bool include_expression_stops = false); - + + //------------------------------------------------------------------ + /// Gets the stop event corresponding to stop ID. + // + /// Note that it wasn't fully implemented and tracks only the stop + /// event for the last natural stop ID. + /// + /// @param [in] stop_id + /// The ID of the stop event to return. + /// + /// @return + /// The stop event corresponding to stop ID. + //------------------------------------------------------------------ + lldb::SBEvent + GetStopEventForStopID(uint32_t stop_id); + size_t ReadMemory (addr_t addr, void *buf, size_t size, lldb::SBError &error); @@ -260,6 +275,9 @@ public: static lldb::SBProcess GetProcessFromEvent (const lldb::SBEvent &event); + + static bool + GetInterruptedFromEvent (const lldb::SBEvent &event); static bool EventIsProcessEvent (const lldb::SBEvent &event); diff --git a/include/lldb/API/SBQueue.h b/include/lldb/API/SBQueue.h index fbb1952902f8..2f453cddd5d1 100644 --- a/include/lldb/API/SBQueue.h +++ b/include/lldb/API/SBQueue.h @@ -17,7 +17,7 @@ namespace lldb { -class SBQueue +class LLDB_API SBQueue { public: SBQueue (); diff --git a/include/lldb/API/SBQueueItem.h b/include/lldb/API/SBQueueItem.h index c90f36eeb573..9426a53b2376 100644 --- a/include/lldb/API/SBQueueItem.h +++ b/include/lldb/API/SBQueueItem.h @@ -15,7 +15,7 @@ namespace lldb { -class SBQueueItem +class LLDB_API SBQueueItem { public: SBQueueItem (); diff --git a/include/lldb/API/SBSection.h b/include/lldb/API/SBSection.h index 5a49049502fd..0a22413b5b9c 100644 --- a/include/lldb/API/SBSection.h +++ b/include/lldb/API/SBSection.h @@ -15,7 +15,7 @@ namespace lldb { -class SBSection +class LLDB_API SBSection { public: diff --git a/include/lldb/API/SBSourceManager.h b/include/lldb/API/SBSourceManager.h index 5b52c49ff3ee..6e7358f16e77 100644 --- a/include/lldb/API/SBSourceManager.h +++ b/include/lldb/API/SBSourceManager.h @@ -16,7 +16,7 @@ namespace lldb { -class SBSourceManager +class LLDB_API SBSourceManager { public: SBSourceManager (const SBDebugger &debugger); diff --git a/include/lldb/API/SBStream.h b/include/lldb/API/SBStream.h index cd33bfda32ba..2b25cd2c68f2 100644 --- a/include/lldb/API/SBStream.h +++ b/include/lldb/API/SBStream.h @@ -16,7 +16,7 @@ namespace lldb { -class SBStream +class LLDB_API SBStream { public: diff --git a/include/lldb/API/SBStringList.h b/include/lldb/API/SBStringList.h index 9d0be6e8a741..e0e58f765c6d 100644 --- a/include/lldb/API/SBStringList.h +++ b/include/lldb/API/SBStringList.h @@ -14,7 +14,7 @@ namespace lldb { -class SBStringList +class LLDB_API SBStringList { public: diff --git a/include/lldb/API/SBSymbol.h b/include/lldb/API/SBSymbol.h index 0a528a9ac96f..3d259a2c20c6 100644 --- a/include/lldb/API/SBSymbol.h +++ b/include/lldb/API/SBSymbol.h @@ -17,7 +17,7 @@ namespace lldb { -class SBSymbol +class LLDB_API SBSymbol { public: diff --git a/include/lldb/API/SBSymbolContext.h b/include/lldb/API/SBSymbolContext.h index fee2d19179d0..24c2ce9a1d6e 100644 --- a/include/lldb/API/SBSymbolContext.h +++ b/include/lldb/API/SBSymbolContext.h @@ -20,7 +20,7 @@ namespace lldb { -class SBSymbolContext +class LLDB_API SBSymbolContext { public: SBSymbolContext (); diff --git a/include/lldb/API/SBSymbolContextList.h b/include/lldb/API/SBSymbolContextList.h index 6cc78e472c6f..79dcccdcbf84 100644 --- a/include/lldb/API/SBSymbolContextList.h +++ b/include/lldb/API/SBSymbolContextList.h @@ -15,7 +15,7 @@ namespace lldb { -class SBSymbolContextList +class LLDB_API SBSymbolContextList { public: SBSymbolContextList (); diff --git a/include/lldb/API/SBTarget.h b/include/lldb/API/SBTarget.h index 322cf04159ff..dcca4e7b3a19 100644 --- a/include/lldb/API/SBTarget.h +++ b/include/lldb/API/SBTarget.h @@ -12,6 +12,7 @@ #include "lldb/API/SBDefines.h" #include "lldb/API/SBAddress.h" +#include "lldb/API/SBAttachInfo.h" #include "lldb/API/SBBroadcaster.h" #include "lldb/API/SBFileSpec.h" #include "lldb/API/SBFileSpecList.h" @@ -25,135 +26,7 @@ namespace lldb { class SBPlatform; -class SBAttachInfo -{ -public: - SBAttachInfo (); - - SBAttachInfo (lldb::pid_t pid); - - SBAttachInfo (const char *path, bool wait_for); - - SBAttachInfo (const SBAttachInfo &rhs); - - ~SBAttachInfo(); - - SBAttachInfo & - operator = (const SBAttachInfo &rhs); - - lldb::pid_t - GetProcessID (); - - void - SetProcessID (lldb::pid_t pid); - - void - SetExecutable (const char *path); - - void - SetExecutable (lldb::SBFileSpec exe_file); - - bool - GetWaitForLaunch (); - - void - SetWaitForLaunch (bool b); - - bool - GetIgnoreExisting (); - - void - SetIgnoreExisting (bool b); - - uint32_t - GetResumeCount (); - - void - SetResumeCount (uint32_t c); - - const char * - GetProcessPluginName (); - - void - SetProcessPluginName (const char *plugin_name); - - uint32_t - GetUserID(); - - uint32_t - GetGroupID(); - - bool - UserIDIsValid (); - - bool - GroupIDIsValid (); - - void - SetUserID (uint32_t uid); - - void - SetGroupID (uint32_t gid); - - uint32_t - GetEffectiveUserID(); - - uint32_t - GetEffectiveGroupID(); - - bool - EffectiveUserIDIsValid (); - - bool - EffectiveGroupIDIsValid (); - - void - SetEffectiveUserID (uint32_t uid); - - void - SetEffectiveGroupID (uint32_t gid); - - lldb::pid_t - GetParentProcessID (); - - void - SetParentProcessID (lldb::pid_t pid); - - bool - ParentProcessIDIsValid(); - - //---------------------------------------------------------------------- - /// Get the listener that will be used to receive process events. - /// - /// If no listener has been set via a call to - /// SBLaunchInfo::SetListener(), then an invalid SBListener will be - /// returned (SBListener::IsValid() will return false). If a listener - /// has been set, then the valid listener object will be returned. - //---------------------------------------------------------------------- - SBListener - GetListener (); - - //---------------------------------------------------------------------- - /// Set the listener that will be used to receive process events. - /// - /// By default the SBDebugger, which has a listener, that the SBTarget - /// belongs to will listen for the process events. Calling this function - /// allows a different listener to be used to listen for process events. - //---------------------------------------------------------------------- - void - SetListener (SBListener &listener); - - -protected: - friend class SBTarget; - - lldb_private::ProcessAttachInfo & - ref (); - - ProcessAttachInfoSP m_opaque_sp; -}; - -class SBTarget +class LLDB_API SBTarget { public: //------------------------------------------------------------------ @@ -187,7 +60,19 @@ public: bool IsValid() const; + + static bool + EventIsTargetEvent (const lldb::SBEvent &event); + + static lldb::SBTarget + GetTargetFromEvent (const lldb::SBEvent &event); + static uint32_t + GetNumModulesFromEvent (const lldb::SBEvent &event); + + static lldb::SBModule + GetModuleAtIndexFromEvent (const uint32_t idx, const lldb::SBEvent &event); + static const char * GetBroadcasterClassName (); @@ -273,7 +158,7 @@ public: /// @param[in] stop_at_entry /// If false do not stop the inferior at the entry point. /// - /// @param[out] + /// @param[out] error /// An error object. Contains the reason if there is some failure. /// /// @return @@ -344,7 +229,7 @@ public: /// @param[in] pid /// The process ID to attach to. /// - /// @param[out] + /// @param[out] error /// An error explaining what went wrong if attach fails. /// /// @return @@ -378,7 +263,7 @@ public: /// @param[in] wait_for /// If true wait for a new instance of 'name' to be launched. /// - /// @param[out] + /// @param[out] error /// An error explaining what went wrong if attach fails. /// /// @return @@ -405,7 +290,7 @@ public: /// @param[in] plugin_name /// The plugin name to be used; can be NULL. /// - /// @param[out] + /// @param[out] error /// An error explaining what went wrong if the connect fails. /// /// @return @@ -764,13 +649,13 @@ public: lldb::SBBreakpoint BreakpointCreateBySourceRegex (const char *source_regex, - const lldb::SBFileSpec &source_file, + const SBFileSpec &source_file, const char *module_name = NULL); lldb::SBBreakpoint - BreakpointCreateBySourceRegex (const char *source_regex, - const SBFileSpecList &module_list, - const lldb::SBFileSpecList &source_file); + BreakpointCreateBySourceRegex (const char *source_regex, + const SBFileSpecList &module_list, + const SBFileSpecList &source_file); lldb::SBBreakpoint BreakpointCreateForException (lldb::LanguageType language, @@ -888,6 +773,12 @@ public: lldb::addr_t GetStackRedZoneSize(); + + lldb::SBLaunchInfo + GetLaunchInfo () const; + + void + SetLaunchInfo (const lldb::SBLaunchInfo &launch_info); protected: friend class SBAddress; diff --git a/include/lldb/API/SBThread.h b/include/lldb/API/SBThread.h index db15f651f2d5..2c45fa8d5120 100644 --- a/include/lldb/API/SBThread.h +++ b/include/lldb/API/SBThread.h @@ -18,7 +18,7 @@ namespace lldb { class SBFrame; -class SBThread +class LLDB_API SBThread { public: enum diff --git a/include/lldb/API/SBThreadCollection.h b/include/lldb/API/SBThreadCollection.h index b13cbd938e28..996ee3cd22aa 100644 --- a/include/lldb/API/SBThreadCollection.h +++ b/include/lldb/API/SBThreadCollection.h @@ -14,7 +14,7 @@ namespace lldb { -class SBThreadCollection +class LLDB_API SBThreadCollection { public: diff --git a/include/lldb/API/SBThreadPlan.h b/include/lldb/API/SBThreadPlan.h index e53942d65fa8..9cc0d0b89bb5 100644 --- a/include/lldb/API/SBThreadPlan.h +++ b/include/lldb/API/SBThreadPlan.h @@ -16,7 +16,7 @@ namespace lldb { -class SBThreadPlan +class LLDB_API SBThreadPlan { friend class lldb_private::ThreadPlan; diff --git a/include/lldb/API/SBType.h b/include/lldb/API/SBType.h index 7990fc0696a9..01f0c6afc795 100644 --- a/include/lldb/API/SBType.h +++ b/include/lldb/API/SBType.h @@ -16,7 +16,7 @@ namespace lldb { class SBTypeList; -class SBTypeMember +class LLDB_API SBTypeMember { public: SBTypeMember (); diff --git a/include/lldb/API/SBTypeCategory.h b/include/lldb/API/SBTypeCategory.h index f123e931e17d..30c338b28a46 100644 --- a/include/lldb/API/SBTypeCategory.h +++ b/include/lldb/API/SBTypeCategory.h @@ -14,7 +14,7 @@ namespace lldb { - class SBTypeCategory + class LLDB_API SBTypeCategory { public: diff --git a/include/lldb/API/SBTypeEnumMember.h b/include/lldb/API/SBTypeEnumMember.h index 75c9917989c2..b141ba0a6bb0 100644 --- a/include/lldb/API/SBTypeEnumMember.h +++ b/include/lldb/API/SBTypeEnumMember.h @@ -15,7 +15,7 @@ namespace lldb { -class SBTypeEnumMember +class LLDB_API SBTypeEnumMember { public: SBTypeEnumMember (); diff --git a/include/lldb/API/SBTypeFilter.h b/include/lldb/API/SBTypeFilter.h index 016954943e28..f030b6a99b60 100644 --- a/include/lldb/API/SBTypeFilter.h +++ b/include/lldb/API/SBTypeFilter.h @@ -14,7 +14,7 @@ namespace lldb { - class SBTypeFilter + class LLDB_API SBTypeFilter { public: diff --git a/include/lldb/API/SBTypeFormat.h b/include/lldb/API/SBTypeFormat.h index eb45ff2b0eba..c24641ac15f5 100644 --- a/include/lldb/API/SBTypeFormat.h +++ b/include/lldb/API/SBTypeFormat.h @@ -14,7 +14,7 @@ namespace lldb { -class SBTypeFormat +class LLDB_API SBTypeFormat { public: diff --git a/include/lldb/API/SBTypeNameSpecifier.h b/include/lldb/API/SBTypeNameSpecifier.h index 19d1988aa0c5..71700a7123d5 100644 --- a/include/lldb/API/SBTypeNameSpecifier.h +++ b/include/lldb/API/SBTypeNameSpecifier.h @@ -14,7 +14,7 @@ namespace lldb { - class SBTypeNameSpecifier + class LLDB_API SBTypeNameSpecifier { public: diff --git a/include/lldb/API/SBTypeSummary.h b/include/lldb/API/SBTypeSummary.h index 220451e6d70b..9b367ba5f982 100644 --- a/include/lldb/API/SBTypeSummary.h +++ b/include/lldb/API/SBTypeSummary.h @@ -15,7 +15,7 @@ #ifndef LLDB_DISABLE_PYTHON namespace lldb { - class SBTypeSummaryOptions + class LLDB_API SBTypeSummaryOptions { public: SBTypeSummaryOptions(); diff --git a/include/lldb/API/SBTypeSynthetic.h b/include/lldb/API/SBTypeSynthetic.h index e77cbfef598c..5dd11757ba40 100644 --- a/include/lldb/API/SBTypeSynthetic.h +++ b/include/lldb/API/SBTypeSynthetic.h @@ -16,7 +16,7 @@ namespace lldb { - class SBTypeSynthetic + class LLDB_API SBTypeSynthetic { public: diff --git a/include/lldb/API/SBUnixSignals.h b/include/lldb/API/SBUnixSignals.h index 40bbed8b48ef..9eae30739bb8 100644 --- a/include/lldb/API/SBUnixSignals.h +++ b/include/lldb/API/SBUnixSignals.h @@ -14,7 +14,7 @@ namespace lldb { -class SBUnixSignals { +class LLDB_API SBUnixSignals { public: SBUnixSignals (); diff --git a/include/lldb/API/SBValue.h b/include/lldb/API/SBValue.h index bedac4ef1d2d..a070b149f34f 100644 --- a/include/lldb/API/SBValue.h +++ b/include/lldb/API/SBValue.h @@ -19,10 +19,8 @@ class ValueLocker; namespace lldb { -class SBValue +class LLDB_API SBValue { -friend class ValueLocker; - public: SBValue (); @@ -84,6 +82,7 @@ public: ValueType GetValueType (); + // If you call this on a newly created ValueObject, it will always return false. bool GetValueDidChange (); @@ -223,7 +222,7 @@ public: /// and also if the target can be run to figure out the dynamic /// type of the child value. /// - /// @param[in] synthetic_allowed + /// @param[in] can_create_synthetic /// If \b true, then allow child values to be created by index /// for pointers and arrays for indexes that normally wouldn't /// be allowed. @@ -326,6 +325,9 @@ public: //------------------------------------------------------------------ bool MightHaveChildren (); + + bool + IsRuntimeSupportValue (); uint32_t GetNumChildren (); @@ -386,7 +388,7 @@ public: /// @param[in] write /// Stop when this value is modified /// - /// @param[out] + /// @param[out] error /// An error object. Contains the reason if there is some failure. /// /// @return @@ -419,7 +421,7 @@ public: /// @param[in] write /// Stop when this value is modified /// - /// @param[out] + /// @param[out] error /// An error object. Contains the reason if there is some failure. /// /// @return diff --git a/include/lldb/API/SBValueList.h b/include/lldb/API/SBValueList.h index 812fdac91c11..563ca3d7e1bf 100644 --- a/include/lldb/API/SBValueList.h +++ b/include/lldb/API/SBValueList.h @@ -16,7 +16,7 @@ class ValueListImpl; namespace lldb { -class SBValueList +class LLDB_API SBValueList { public: diff --git a/include/lldb/API/SBVariablesOptions.h b/include/lldb/API/SBVariablesOptions.h new file mode 100644 index 000000000000..527310f5dfc7 --- /dev/null +++ b/include/lldb/API/SBVariablesOptions.h @@ -0,0 +1,98 @@ +//===-- SBVariablesOptions.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_SBVariablesOptions_h_ +#define LLDB_SBVariablesOptions_h_ + +#include "lldb/API/SBDefines.h" + +class VariablesOptionsImpl; + +namespace lldb { + +class LLDB_API SBVariablesOptions +{ +public: + SBVariablesOptions (); + + SBVariablesOptions (const SBVariablesOptions& options); + + SBVariablesOptions& + operator = (const SBVariablesOptions& options); + + ~SBVariablesOptions (); + + bool + IsValid () const; + + bool + GetIncludeArguments () const; + + void + SetIncludeArguments (bool); + + bool + GetIncludeLocals () const; + + void + SetIncludeLocals (bool); + + bool + GetIncludeStatics () const; + + void + SetIncludeStatics (bool); + + bool + GetInScopeOnly () const; + + void + SetInScopeOnly (bool); + + bool + GetIncludeRuntimeSupportValues () const; + + void + SetIncludeRuntimeSupportValues (bool); + + lldb::DynamicValueType + GetUseDynamic () const; + + void + SetUseDynamic (lldb::DynamicValueType); + +protected: + VariablesOptionsImpl * + operator->(); + + const VariablesOptionsImpl * + operator->() const; + + VariablesOptionsImpl * + get (); + + VariablesOptionsImpl & + ref(); + + const VariablesOptionsImpl & + ref() const; + + SBVariablesOptions (VariablesOptionsImpl *lldb_object_ptr); + + void + SetOptions (VariablesOptionsImpl *lldb_object_ptr); + +private: + + std::unique_ptr<VariablesOptionsImpl> m_opaque_ap; +}; + +} // namespace lldb + +#endif // LLDB_SBValue_h_ diff --git a/include/lldb/API/SBWatchpoint.h b/include/lldb/API/SBWatchpoint.h index 9bf51fd1ad05..5d0d48ee12f2 100644 --- a/include/lldb/API/SBWatchpoint.h +++ b/include/lldb/API/SBWatchpoint.h @@ -14,7 +14,7 @@ namespace lldb { -class SBWatchpoint +class LLDB_API SBWatchpoint { public: diff --git a/include/lldb/API/SystemInitializerFull.h b/include/lldb/API/SystemInitializerFull.h new file mode 100644 index 000000000000..6280fe8aef04 --- /dev/null +++ b/include/lldb/API/SystemInitializerFull.h @@ -0,0 +1,40 @@ +//===-- SystemInitializerFull.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_API_SYSTEM_INITIALIZER_FULL_H +#define LLDB_API_SYSTEM_INITIALIZER_FULL_H + +#include "lldb/Initialization/SystemInitializerCommon.h" + +namespace lldb_private +{ +//------------------------------------------------------------------ +/// Initializes lldb. +/// +/// This class is responsible for initializing all of lldb system +/// services needed to use the full LLDB application. This class is +/// not intended to be used externally, but is instead used +/// internally by SBDebugger to initialize the system. +//------------------------------------------------------------------ +class SystemInitializerFull : public SystemInitializerCommon +{ + public: + SystemInitializerFull(); + virtual ~SystemInitializerFull(); + + void Initialize() override; + void Terminate() override; + + private: + void InitializeSWIG(); + void TerminateSWIG(); +}; +} + +#endif |
