diff options
Diffstat (limited to 'include/lldb/API')
-rw-r--r-- | include/lldb/API/SBBreakpoint.h | 8 | ||||
-rw-r--r-- | include/lldb/API/SBBreakpointLocation.h | 6 | ||||
-rw-r--r-- | include/lldb/API/SBDefines.h | 111 | ||||
-rw-r--r-- | include/lldb/API/SBError.h | 2 | ||||
-rw-r--r-- | include/lldb/API/SBExpressionOptions.h | 34 | ||||
-rw-r--r-- | include/lldb/API/SBFileSpec.h | 2 | ||||
-rw-r--r-- | include/lldb/API/SBFrame.h | 2 | ||||
-rw-r--r-- | include/lldb/API/SBHostOS.h | 7 | ||||
-rw-r--r-- | include/lldb/API/SBListener.h | 2 | ||||
-rw-r--r-- | include/lldb/API/SBProcess.h | 6 | ||||
-rw-r--r-- | include/lldb/API/SBQueue.h | 8 | ||||
-rw-r--r-- | include/lldb/API/SBQueueItem.h | 1 | ||||
-rw-r--r-- | include/lldb/API/SBStream.h | 3 | ||||
-rw-r--r-- | include/lldb/API/SBTarget.h | 45 | ||||
-rw-r--r-- | include/lldb/API/SBThread.h | 13 | ||||
-rw-r--r-- | include/lldb/API/SBType.h | 8 | ||||
-rw-r--r-- | include/lldb/API/SBTypeEnumMember.h | 98 | ||||
-rw-r--r-- | include/lldb/API/SBUnixSignals.h | 84 | ||||
-rw-r--r-- | include/lldb/API/SBValue.h | 7 |
19 files changed, 381 insertions, 66 deletions
diff --git a/include/lldb/API/SBBreakpoint.h b/include/lldb/API/SBBreakpoint.h index be9c499798e1..86d49c29a821 100644 --- a/include/lldb/API/SBBreakpoint.h +++ b/include/lldb/API/SBBreakpoint.h @@ -117,7 +117,13 @@ public: void SetCallback (BreakpointHitCallback callback, void *baton); - + + void + SetScriptCallbackFunction (const char *callback_function_name); + + SBError + SetScriptCallbackBody (const char *script_body_text); + size_t GetNumResolvedLocations() const; diff --git a/include/lldb/API/SBBreakpointLocation.h b/include/lldb/API/SBBreakpointLocation.h index 3b2ca2cf88e8..fd9f246de4ff 100644 --- a/include/lldb/API/SBBreakpointLocation.h +++ b/include/lldb/API/SBBreakpointLocation.h @@ -59,6 +59,12 @@ public: GetCondition (); void + SetScriptCallbackFunction (const char *callback_function_name); + + SBError + SetScriptCallbackBody (const char *script_body_text); + + void SetThreadID (lldb::tid_t sb_thread_id); lldb::tid_t diff --git a/include/lldb/API/SBDefines.h b/include/lldb/API/SBDefines.h index 8779d43d1f40..30ea0dfda56e 100644 --- a/include/lldb/API/SBDefines.h +++ b/include/lldb/API/SBDefines.h @@ -21,62 +21,71 @@ #include "lldb/lldb-types.h" #include "lldb/lldb-versioning.h" -// Forward Declarations +#ifdef SWIG +#define LLDB_API +#endif +// Forward Declarations namespace lldb { -class SBAddress; -class SBBlock; -class SBBreakpoint; -class SBBreakpointLocation; -class SBBroadcaster; -class SBCommand; -class SBCommandInterpreter; -class SBCommandPluginInterface; -class SBCommandReturnObject; -class SBCommunication; -class SBCompileUnit; -class SBData; -class SBDebugger; -class SBDeclaration; -class SBError; -class SBEvent; -class SBEventList; -class SBExpressionOptions; -class SBFileSpec; -class SBFileSpecList; -class SBFrame; -class SBFunction; -class SBHostOS; -class SBInstruction; -class SBInstructionList; -class SBLineEntry; -class SBListener; -class SBModule; -class SBModuleSpec; -class SBModuleSpecList; -class SBProcess; -class SBSourceManager; -class SBStream; -class SBStringList; -class SBSymbol; -class SBSymbolContext; -class SBSymbolContextList; -class SBTarget; -class SBThread; -class SBType; -class SBTypeCategory; -class SBTypeFilter; -class SBTypeFormat; -class SBTypeNameSpecifier; -class SBTypeSummary; +class LLDB_API SBAddress; +class LLDB_API SBBlock; +class LLDB_API SBBreakpoint; +class LLDB_API SBBreakpointLocation; +class LLDB_API SBBroadcaster; +class LLDB_API SBCommand; +class LLDB_API SBCommandInterpreter; +class LLDB_API SBCommandPluginInterface; +class LLDB_API SBCommandReturnObject; +class LLDB_API SBCommunication; +class LLDB_API SBCompileUnit; +class LLDB_API SBData; +class LLDB_API SBDebugger; +class LLDB_API SBDeclaration; +class LLDB_API SBError; +class LLDB_API SBEvent; +class LLDB_API SBEventList; +class LLDB_API SBExpressionOptions; +class LLDB_API SBFileSpec; +class LLDB_API SBFileSpecList; +class LLDB_API SBFrame; +class LLDB_API SBFunction; +class LLDB_API SBHostOS; +class LLDB_API SBInstruction; +class LLDB_API SBInstructionList; +class LLDB_API SBLineEntry; +class LLDB_API SBListener; +class LLDB_API SBModule; +class LLDB_API SBModuleSpec; +class LLDB_API SBModuleSpecList; +class LLDB_API SBProcess; +class LLDB_API SBQueue; +class LLDB_API SBQueueItem; +class LLDB_API SBSection; +class LLDB_API SBSourceManager; +class LLDB_API SBStream; +class LLDB_API SBStringList; +class LLDB_API SBSymbol; +class LLDB_API SBSymbolContext; +class LLDB_API SBSymbolContextList; +class LLDB_API SBTarget; +class LLDB_API SBThread; +class LLDB_API SBType; +class LLDB_API SBTypeCategory; +class LLDB_API SBTypeEnumMember; +class LLDB_API SBTypeEnumMemberList; +class LLDB_API SBTypeFilter; +class LLDB_API SBTypeFormat; +class LLDB_API SBTypeNameSpecifier; +class LLDB_API SBTypeSummary; #ifndef LLDB_DISABLE_PYTHON -class SBTypeSynthetic; +class LLDB_API SBTypeSynthetic; #endif -class SBTypeList; -class SBValue; -class SBValueList; -class SBWatchpoint; +class LLDB_API SBTypeList; +class LLDB_API SBValue; +class LLDB_API SBValueList; +class LLDB_API SBWatchpoint; +class LLDB_API SBUnixSignals; } diff --git a/include/lldb/API/SBError.h b/include/lldb/API/SBError.h index 25d7e81a3be5..b9908658c5bc 100644 --- a/include/lldb/API/SBError.h +++ b/include/lldb/API/SBError.h @@ -77,6 +77,8 @@ protected: friend class SBTarget; friend class SBValue; friend class SBWatchpoint; + friend class SBBreakpoint; + friend class SBBreakpointLocation; lldb_private::Error * get(); diff --git a/include/lldb/API/SBExpressionOptions.h b/include/lldb/API/SBExpressionOptions.h index 6a3a640432f6..c3592880c46a 100644 --- a/include/lldb/API/SBExpressionOptions.h +++ b/include/lldb/API/SBExpressionOptions.h @@ -56,20 +56,54 @@ public: uint32_t GetTimeoutInMicroSeconds () const; + // Set the timeout for the expression, 0 means wait forever. void SetTimeoutInMicroSeconds (uint32_t timeout = 0); + uint32_t + GetOneThreadTimeoutInMicroSeconds () const; + + // Set the timeout for running on one thread, 0 means use the default behavior. + // If you set this higher than the overall timeout, you'll get an error when you + // try to run the expression. + void + SetOneThreadTimeoutInMicroSeconds (uint32_t timeout = 0); + bool GetTryAllThreads () const; void SetTryAllThreads (bool run_others = true); + + bool + GetStopOthers() const; + + void + SetStopOthers(bool stop_others = true); bool GetTrapExceptions () const; void SetTrapExceptions (bool trap_exceptions = true); + + void + SetLanguage (lldb::LanguageType language); + + void + SetCancelCallback (lldb::ExpressionCancelCallback callback, void *baton); + + bool + GetGenerateDebugInfo (); + + void + SetGenerateDebugInfo (bool b = true); + + bool + GetSuppressPersistentResult (); + + void + SetSuppressPersistentResult (bool b = false); protected: diff --git a/include/lldb/API/SBFileSpec.h b/include/lldb/API/SBFileSpec.h index 5d4447f74e64..d262b98d0fd7 100644 --- a/include/lldb/API/SBFileSpec.h +++ b/include/lldb/API/SBFileSpec.h @@ -21,7 +21,7 @@ public: SBFileSpec (const lldb::SBFileSpec &rhs); - SBFileSpec (const char *path);// Deprected, use SBFileSpec (const char *path, bool resolve) + SBFileSpec (const char *path);// Deprecated, use SBFileSpec (const char *path, bool resolve) SBFileSpec (const char *path, bool resolve); diff --git a/include/lldb/API/SBFrame.h b/include/lldb/API/SBFrame.h index 4ae38c13bede..f6b84ab1ddac 100644 --- a/include/lldb/API/SBFrame.h +++ b/include/lldb/API/SBFrame.h @@ -75,7 +75,7 @@ public: /// Get the appropriate function name for this frame. Inlined functions in /// LLDB are represented by Blocks that have inlined function information, so /// just looking at the SBFunction or SBSymbol for a frame isn't enough. - /// This function will return the appriopriate function, symbol or inlined + /// This function will return the appropriate function, symbol or inlined /// function name for the frame. /// /// This function returns: diff --git a/include/lldb/API/SBHostOS.h b/include/lldb/API/SBHostOS.h index e5fab6fe7849..7ab22caaaad9 100644 --- a/include/lldb/API/SBHostOS.h +++ b/include/lldb/API/SBHostOS.h @@ -25,12 +25,15 @@ public: static lldb::SBFileSpec GetLLDBPythonPath (); + static lldb::SBFileSpec + GetLLDBPath (lldb::PathType path_type); + static void ThreadCreated (const char *name); static lldb::thread_t ThreadCreate (const char *name, - thread_func_t thread_function, + lldb::thread_func_t thread_function, void *thread_arg, lldb::SBError *err); @@ -43,7 +46,7 @@ public: lldb::SBError *err); static bool ThreadJoin (lldb::thread_t thread, - thread_result_t *result, + lldb::thread_result_t *result, lldb::SBError *err); diff --git a/include/lldb/API/SBListener.h b/include/lldb/API/SBListener.h index c5a047341741..4a11ec1072f1 100644 --- a/include/lldb/API/SBListener.h +++ b/include/lldb/API/SBListener.h @@ -55,7 +55,7 @@ public: StopListeningForEvents (const lldb::SBBroadcaster& broadcaster, uint32_t event_mask); - // Returns true if an event was recieved, false if we timed out. + // Returns true if an event was received, false if we timed out. bool WaitForEvent (uint32_t num_seconds, lldb::SBEvent &event); diff --git a/include/lldb/API/SBProcess.h b/include/lldb/API/SBProcess.h index f2846710c614..4b59462ca3f1 100644 --- a/include/lldb/API/SBProcess.h +++ b/include/lldb/API/SBProcess.h @@ -221,6 +221,9 @@ public: lldb::SBError Signal (int signal); + lldb::SBUnixSignals + GetUnixSignals(); + void SendAsyncInterrupt(); @@ -279,6 +282,9 @@ public: lldb::SBError UnloadImage (uint32_t image_token); + lldb::SBError + SendEventData (const char *data); + //------------------------------------------------------------------ /// Return the number of different thread-origin extended backtraces /// this process can support. diff --git a/include/lldb/API/SBQueue.h b/include/lldb/API/SBQueue.h index 6ab9aa09f466..fbb1952902f8 100644 --- a/include/lldb/API/SBQueue.h +++ b/include/lldb/API/SBQueue.h @@ -14,7 +14,6 @@ #include "lldb/lldb-forward.h" #include "lldb/API/SBDefines.h" -#include "lldb/API/SBQueueItem.h" namespace lldb { @@ -62,8 +61,15 @@ public: lldb::SBQueueItem GetPendingItemAtIndex (uint32_t); + uint32_t + GetNumRunningItems (); + + lldb::QueueKind + GetKind (); + protected: friend class SBProcess; + friend class SBThread; void SetQueue (const lldb::QueueSP& queue_sp); diff --git a/include/lldb/API/SBQueueItem.h b/include/lldb/API/SBQueueItem.h index 355c5ac90a23..c90f36eeb573 100644 --- a/include/lldb/API/SBQueueItem.h +++ b/include/lldb/API/SBQueueItem.h @@ -12,7 +12,6 @@ #include "lldb/API/SBDefines.h" #include "lldb/API/SBAddress.h" -#include "lldb/API/SBThread.h" namespace lldb { diff --git a/include/lldb/API/SBStream.h b/include/lldb/API/SBStream.h index 038adf68542c..fb69c12f0a91 100644 --- a/include/lldb/API/SBStream.h +++ b/include/lldb/API/SBStream.h @@ -51,7 +51,7 @@ public: RedirectToFileDescriptor (int fd, bool transfer_fh_ownership); // If the stream is redirected to a file, forget about the file and if - // ownership of the file was transfered to this object, close the file. + // ownership of the file was transferred to this object, close the file. // If the stream is backed by a local cache, clear this cache. void Clear (); @@ -86,6 +86,7 @@ protected: friend class SBTarget; friend class SBThread; friend class SBType; + friend class SBTypeEnumMember; friend class SBTypeMember; friend class SBValue; friend class SBWatchpoint; diff --git a/include/lldb/API/SBTarget.h b/include/lldb/API/SBTarget.h index 230dffc68251..370d40d0454a 100644 --- a/include/lldb/API/SBTarget.h +++ b/include/lldb/API/SBTarget.h @@ -47,6 +47,35 @@ public: void SetGroupID (uint32_t gid); + SBFileSpec + GetExecutableFile (); + + //---------------------------------------------------------------------- + /// Set the executable file that will be used to launch the process and + /// optionally set it as the first argument in the argument vector. + /// + /// This only needs to be specified if clients wish to carefully control + /// the exact path will be used to launch a binary. If you create a + /// target with a symlink, that symlink will get resolved in the target + /// and the resolved path will get used to launch the process. Calling + /// this function can help you still launch your process using the + /// path of your choice. + /// + /// If this function is not called prior to launching with + /// SBTarget::Launch(...), the target will use the resolved executable + /// path that was used to create the target. + /// + /// @param[in] exe_file + /// The override path to use when launching the executable. + /// + /// @param[in] add_as_first_arg + /// If true, then the path will be inserted into the argument vector + /// prior to launching. Otherwise the argument vector will be left + /// alone. + //---------------------------------------------------------------------- + void + SetExecutableFile (SBFileSpec exe_file, bool add_as_first_arg); + uint32_t GetNumArguments (); @@ -110,6 +139,18 @@ public: bool AddSuppressFileAction (int fd, bool read, bool write); + void + SetLaunchEventData (const char *data); + + const char * + GetLaunchEventData () const; + + bool + GetDetachOnError() const; + + void + SetDetachOnError(bool enable); + protected: friend class SBTarget; @@ -331,7 +372,7 @@ public: /// Some launch options specified by logical OR'ing /// lldb::LaunchFlags enumeration values together. /// - /// @param[in] stop_at_endtry + /// @param[in] stop_at_entry /// If false do not stop the inferior at the entry point. /// /// @param[out] @@ -580,7 +621,7 @@ public: //------------------------------------------------------------------ - /// The the section base load addresses for all sections in a module. + /// Clear the section base load addresses for all sections in a module. /// /// @param[in] module /// The module to unload. diff --git a/include/lldb/API/SBThread.h b/include/lldb/API/SBThread.h index 04b6c86e6d89..07a43ebee7ce 100644 --- a/include/lldb/API/SBThread.h +++ b/include/lldb/API/SBThread.h @@ -41,6 +41,9 @@ public: ~SBThread(); + lldb::SBQueue + GetQueue () const; + bool IsValid() const; @@ -97,6 +100,9 @@ public: lldb::queue_id_t GetQueueID() const; + bool + GetInfoItemByPathAsString ( const char *path, SBStream &strm); + void StepOver (lldb::RunMode stop_other_threads = lldb::eOnlyDuringStepping); @@ -136,8 +142,8 @@ public: /// the other threads in a process are allowed to run. So when /// SBProcess::Continue() is called, any threads that aren't suspended will /// be allowed to run. If any of the SBThread functions for stepping are - /// called (StepOver, StepInto, StepOut, StepInstruction, RunToAddres), the - /// thread will not be allowed to run and these funtions will simply return. + /// called (StepOver, StepInto, StepOut, StepInstruction, RunToAddress), the + /// thread will not be allowed to run and these functions will simply return. /// /// Eventually we plan to add support for thread centric debugging where /// each thread is controlled individually and each thread would broadcast @@ -207,6 +213,9 @@ public: uint32_t GetExtendedBacktraceOriginatingIndexID (); + bool + SafeToCallFunctions (); + protected: friend class SBBreakpoint; friend class SBBreakpointLocation; diff --git a/include/lldb/API/SBType.h b/include/lldb/API/SBType.h index 2cd9b4459a33..363aa59e35aa 100644 --- a/include/lldb/API/SBType.h +++ b/include/lldb/API/SBType.h @@ -143,6 +143,9 @@ public: lldb::SBTypeMember GetVirtualBaseClassAtIndex (uint32_t idx); + lldb::SBTypeEnumMemberList + GetEnumMembers(); + uint32_t GetNumberOfTemplateArguments (); @@ -161,6 +164,9 @@ public: const char* GetName(); + const char * + GetDisplayTypeName (); + lldb::TypeClass GetTypeClass (); @@ -199,6 +205,8 @@ protected: friend class SBFunction; friend class SBModule; friend class SBTarget; + friend class SBTypeEnumMember; + friend class SBTypeEnumMemberList; friend class SBTypeNameSpecifier; friend class SBTypeMember; friend class SBTypeList; diff --git a/include/lldb/API/SBTypeEnumMember.h b/include/lldb/API/SBTypeEnumMember.h new file mode 100644 index 000000000000..75c9917989c2 --- /dev/null +++ b/include/lldb/API/SBTypeEnumMember.h @@ -0,0 +1,98 @@ + +//===-- SBTypeEnumMember.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_SBTypeEnumMember_h_ +#define LLDB_SBTypeEnumMember_h_ + +#include "lldb/API/SBDefines.h" + +namespace lldb { + +class SBTypeEnumMember +{ +public: + SBTypeEnumMember (); + + SBTypeEnumMember (const SBTypeEnumMember& rhs); + + ~SBTypeEnumMember(); + + SBTypeEnumMember& + operator = (const SBTypeEnumMember& rhs); + + bool + IsValid() const; + + int64_t + GetValueAsSigned(); + + uint64_t + GetValueAsUnsigned(); + + const char * + GetName (); + + lldb::SBType + GetType (); + + bool + GetDescription (lldb::SBStream &description, + lldb::DescriptionLevel description_level); + +protected: + friend class SBType; + friend class SBTypeEnumMemberList; + + void + reset (lldb_private::TypeEnumMemberImpl *); + + lldb_private::TypeEnumMemberImpl & + ref (); + + const lldb_private::TypeEnumMemberImpl & + ref () const; + + lldb::TypeEnumMemberImplSP m_opaque_sp; + + SBTypeEnumMember (const lldb::TypeEnumMemberImplSP &); +}; + +class SBTypeEnumMemberList +{ +public: + SBTypeEnumMemberList(); + + SBTypeEnumMemberList(const SBTypeEnumMemberList& rhs); + + ~SBTypeEnumMemberList(); + + SBTypeEnumMemberList& + operator = (const SBTypeEnumMemberList& rhs); + + bool + IsValid(); + + void + Append (SBTypeEnumMember entry); + + SBTypeEnumMember + GetTypeEnumMemberAtIndex (uint32_t index); + + uint32_t + GetSize(); + + +private: + std::unique_ptr<lldb_private::TypeEnumMemberListImpl> m_opaque_ap; +}; + +} // namespace lldb + +#endif // LLDB_SBTypeEnumMember_h_ diff --git a/include/lldb/API/SBUnixSignals.h b/include/lldb/API/SBUnixSignals.h new file mode 100644 index 000000000000..40bbed8b48ef --- /dev/null +++ b/include/lldb/API/SBUnixSignals.h @@ -0,0 +1,84 @@ +//===-- SBUnixSignals.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_SBUnixSignals_h_ +#define LLDB_SBUnixSignals_h_ + +#include "lldb/API/SBDefines.h" + +namespace lldb { + +class SBUnixSignals { +public: + SBUnixSignals (); + + SBUnixSignals (const lldb::SBUnixSignals &rhs); + + ~SBUnixSignals(); + + const SBUnixSignals & + operator =(const lldb::SBUnixSignals &rhs); + + void + Clear (); + + bool + IsValid () const; + + const char * + GetSignalAsCString (int32_t signo) const; + + int32_t + GetSignalNumberFromName (const char *name) const; + + bool + GetShouldSuppress (int32_t signo) const; + + bool + SetShouldSuppress (int32_t signo, + bool value); + + bool + GetShouldStop (int32_t signo) const; + + bool + SetShouldStop (int32_t signo, + bool value); + + bool + GetShouldNotify (int32_t signo) const; + + bool + SetShouldNotify (int32_t signo, bool value); + + int32_t + GetNumSignals () const; + + int32_t + GetSignalAtIndex (int32_t index) const; + +protected: + friend class SBProcess; + + SBUnixSignals (lldb::ProcessSP &process_sp); + + lldb::ProcessSP + GetSP() const; + + void + SetSP (const lldb::ProcessSP &process_sp); + +private: + lldb::ProcessWP m_opaque_wp; +}; + + +} // namespace lldb + +#endif // LLDB_SBUnixSignals_h_ diff --git a/include/lldb/API/SBValue.h b/include/lldb/API/SBValue.h index 2b9a344b9300..93b869ba9c5c 100644 --- a/include/lldb/API/SBValue.h +++ b/include/lldb/API/SBValue.h @@ -50,6 +50,9 @@ public: const char * GetTypeName (); + + const char * + GetDisplayTypeName (); size_t GetByteSize (); @@ -173,7 +176,7 @@ public: //------------------------------------------------------------------ /// Get a child value by index from a value. /// - /// Structs, unions, classes, arrays and and pointers have child + /// Structs, unions, classes, arrays and pointers have child /// values that can be access by index. /// /// Structs and unions access child members using a zero based index @@ -208,7 +211,7 @@ public: /// The index of the child value to get /// /// @param[in] use_dynamic - /// An enumeration that specifies wether to get dynamic values, + /// An enumeration that specifies whether to get dynamic values, /// and also if the target can be run to figure out the dynamic /// type of the child value. /// |