diff options
| -rw-r--r-- | lldb/include/lldb/API/SBAddress.h | 7 | ||||
| -rw-r--r-- | lldb/include/lldb/API/SBModule.h | 3 | ||||
| -rw-r--r-- | lldb/include/lldb/API/SBSymbol.h | 3 | ||||
| -rw-r--r-- | lldb/include/lldb/Core/Module.h | 8 | ||||
| -rw-r--r-- | lldb/include/lldb/Core/ModuleList.h | 2 | ||||
| -rw-r--r-- | lldb/include/lldb/Core/Section.h | 8 | ||||
| -rw-r--r-- | lldb/include/lldb/Symbol/Symbol.h | 12 | ||||
| -rw-r--r-- | lldb/include/lldb/Symbol/Symtab.h | 26 | ||||
| -rw-r--r-- | lldb/include/lldb/lldb-enumerations.h | 812 | ||||
| -rw-r--r-- | lldb/include/lldb/lldb-private-enumerations.h | 67 | ||||
| -rw-r--r-- | lldb/include/lldb/lldb-private.h | 2 | ||||
| -rw-r--r-- | lldb/source/API/SBAddress.cpp | 29 | ||||
| -rw-r--r-- | lldb/source/API/SBSymbol.cpp | 8 | ||||
| -rw-r--r-- | lldb/source/Core/Module.cpp | 2 | ||||
| -rw-r--r-- | lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h | 4 | 
15 files changed, 521 insertions, 472 deletions
diff --git a/lldb/include/lldb/API/SBAddress.h b/lldb/include/lldb/API/SBAddress.h index 269c3fac438..3b45a154e37 100644 --- a/lldb/include/lldb/API/SBAddress.h +++ b/lldb/include/lldb/API/SBAddress.h @@ -11,6 +11,7 @@  #define LLDB_SBAddress_h_  #include "lldb/API/SBDefines.h" +#include "lldb/API/SBModule.h"  namespace lldb { @@ -47,6 +48,12 @@ public:      bool      GetDescription (lldb::SBStream &description); +    SectionType +    GetSectionType (); + +    lldb::SBModule +    GetModule (); +  protected:      friend class SBFrame; diff --git a/lldb/include/lldb/API/SBModule.h b/lldb/include/lldb/API/SBModule.h index cbc56eb27b1..712ea1b689b 100644 --- a/lldb/include/lldb/API/SBModule.h +++ b/lldb/include/lldb/API/SBModule.h @@ -66,9 +66,10 @@ public:      GetSymbolAtIndex (size_t idx);  private: +    friend class SBAddress; +    friend class SBFrame;      friend class SBSymbolContext;      friend class SBTarget; -    friend class SBFrame;      explicit SBModule (const lldb::ModuleSP& module_sp); diff --git a/lldb/include/lldb/API/SBSymbol.h b/lldb/include/lldb/API/SBSymbol.h index a56377e14f8..f24ebb5f368 100644 --- a/lldb/include/lldb/API/SBSymbol.h +++ b/lldb/include/lldb/API/SBSymbol.h @@ -54,6 +54,9 @@ public:      uint32_t      GetPrologueByteSize (); +    SymbolType +    GetType (); +  #ifndef SWIG      bool      operator == (const lldb::SBSymbol &rhs) const; diff --git a/lldb/include/lldb/Core/Module.h b/lldb/include/lldb/Core/Module.h index 9bcfe91d4e7..d4caf735f01 100644 --- a/lldb/include/lldb/Core/Module.h +++ b/lldb/include/lldb/Core/Module.h @@ -90,7 +90,7 @@ public:      /// pointer if it has one in the shared module list.      //------------------------------------------------------------------      lldb::ModuleSP -    GetSP (); +    GetSP () const;      //------------------------------------------------------------------      /// @copydoc SymbolContextScope::CalculateSymbolContext(SymbolContext*) @@ -144,16 +144,16 @@ public:      //------------------------------------------------------------------      const Symbol *      FindFirstSymbolWithNameAndType (const ConstString &name,  -                                    SymbolType symbol_type = eSymbolTypeAny); +                                    lldb::SymbolType symbol_type = lldb::eSymbolTypeAny);      size_t      FindSymbolsWithNameAndType (const ConstString &name,  -                                SymbolType symbol_type,  +                                lldb::SymbolType symbol_type,                                   SymbolContextList &sc_list);      size_t      FindSymbolsMatchingRegExAndType (const RegularExpression ®ex,  -                                     SymbolType symbol_type,  +                                     lldb::SymbolType symbol_type,                                        SymbolContextList &sc_list);      //------------------------------------------------------------------ diff --git a/lldb/include/lldb/Core/ModuleList.h b/lldb/include/lldb/Core/ModuleList.h index 659fe793023..f6fdc697eba 100644 --- a/lldb/include/lldb/Core/ModuleList.h +++ b/lldb/include/lldb/Core/ModuleList.h @@ -288,7 +288,7 @@ public:      size_t      FindSymbolsWithNameAndType (const ConstString &name, -                                SymbolType symbol_type, +                                lldb::SymbolType symbol_type,                                  SymbolContextList &sc_list);      //------------------------------------------------------------------ diff --git a/lldb/include/lldb/Core/Section.h b/lldb/include/lldb/Core/Section.h index e2c6ce4cede..e15ef890da8 100644 --- a/lldb/include/lldb/Core/Section.h +++ b/lldb/include/lldb/Core/Section.h @@ -55,7 +55,7 @@ public:      FindSectionByID (lldb::user_id_t sect_id) const;      lldb::SectionSP -    FindSectionByType (SectionType sect_type, bool check_children, uint32_t start_idx = 0) const; +    FindSectionByType (lldb::SectionType sect_type, bool check_children, uint32_t start_idx = 0) const;      lldb::SectionSP      GetSharedPointer (const Section *section, bool check_children) const; @@ -105,7 +105,7 @@ public:          Module* module,          lldb::user_id_t sect_id,          const ConstString &name, -        SectionType sect_type, +        lldb::SectionType sect_type,          lldb::addr_t file_vm_addr,          lldb::addr_t vm_size,          uint64_t file_offset, @@ -268,7 +268,7 @@ public:      lldb::addr_t      GetLinkedFileAddress () const; -    SectionType +    lldb::SectionType      GetType () const      {          return m_type; @@ -278,7 +278,7 @@ protected:      Section *       m_parent;           // Parent section or NULL if no parent.      ConstString     m_name;             // Name of this section -    SectionType m_type;           // The type of this section +    lldb::SectionType m_type;           // The type of this section      lldb::addr_t    m_file_addr;        // The absolute file virtual address range of this section if m_parent == NULL,                                          // offset from parent file virtual address if m_parent != NULL      lldb::addr_t    m_byte_size;        // Size in bytes that this section will occupy in memory at runtime diff --git a/lldb/include/lldb/Symbol/Symbol.h b/lldb/include/lldb/Symbol/Symbol.h index 2fb7273a870..d8e187e7847 100644 --- a/lldb/include/lldb/Symbol/Symbol.h +++ b/lldb/include/lldb/Symbol/Symbol.h @@ -31,7 +31,7 @@ public:      Symbol (lldb::user_id_t symID,              const char *name,              bool name_is_mangled, -            SymbolType type, +            lldb::SymbolType type,              bool external,              bool is_debug,              bool is_trampoline, @@ -44,7 +44,7 @@ public:      Symbol (lldb::user_id_t symID,              const char *name,              bool name_is_mangled, -            SymbolType type, +            lldb::SymbolType type,              bool external,              bool is_debug,              bool is_trampoline, @@ -58,7 +58,7 @@ public:      operator= (const Symbol& rhs);      bool -    Compare (const ConstString& name, SymbolType type) const; +    Compare (const ConstString& name, lldb::SymbolType type) const;      void      Dump (Stream *s, Target *target, uint32_t index) const; @@ -96,11 +96,11 @@ public:      lldb::addr_t      GetByteSize () const { return m_addr_range.GetByteSize(); } -    SymbolType +    lldb::SymbolType      GetType () const { return m_type; }      void -    SetType (SymbolType type) { m_type = type; } +    SetType (lldb::SymbolType type) { m_type = type; }      const char *      GetTypeAsString () const; @@ -186,7 +186,7 @@ public:  protected:      Mangled         m_mangled;              // uniqued symbol name/mangled name pair -    SymbolType m_type;                 // symbol type +    lldb::SymbolType m_type;                 // symbol type      uint16_t        m_type_data;            // data specific to m_type      uint16_t        m_type_data_resolved:1, // True if the data in m_type_data has already been calculated                      m_is_synthetic:1,       // non-zero if this symbol is not actually in the symbol table, but synthesized from other info in the object file. diff --git a/lldb/include/lldb/Symbol/Symtab.h b/lldb/include/lldb/Symbol/Symtab.h index c2a1d743cdd..da929ccdf50 100644 --- a/lldb/include/lldb/Symbol/Symtab.h +++ b/lldb/include/lldb/Symbol/Symtab.h @@ -52,21 +52,21 @@ public:              Symbol *    FindSymbolByID (lldb::user_id_t uid) const;              Symbol *    SymbolAtIndex (uint32_t idx);      const   Symbol *    SymbolAtIndex (uint32_t idx) const; -            Symbol *    FindSymbolWithType (SymbolType symbol_type, Debug symbol_debug_type, Visibility symbol_visibility, uint32_t &start_idx); -//    const   Symbol *    FindSymbolWithType (SymbolType symbol_type, Debug symbol_debug_type, Visibility symbol_visibility, uint32_t &start_idx) const; -            uint32_t    AppendSymbolIndexesWithType (SymbolType symbol_type, std::vector<uint32_t>& indexes, uint32_t start_idx = 0, uint32_t end_index = UINT32_MAX) const; -            uint32_t    AppendSymbolIndexesWithTypeAndFlagsValue (SymbolType symbol_type, uint32_t flags_value, std::vector<uint32_t>& indexes, uint32_t start_idx = 0, uint32_t end_index = UINT32_MAX) const; -            uint32_t    AppendSymbolIndexesWithType (SymbolType symbol_type, Debug symbol_debug_type, Visibility symbol_visibility, std::vector<uint32_t>& matches, uint32_t start_idx = 0, uint32_t end_index = UINT32_MAX) const; +            Symbol *    FindSymbolWithType (lldb::SymbolType symbol_type, Debug symbol_debug_type, Visibility symbol_visibility, uint32_t &start_idx); +//    const   Symbol *    FindSymbolWithType (lldb::SymbolType symbol_type, Debug symbol_debug_type, Visibility symbol_visibility, uint32_t &start_idx) const; +            uint32_t    AppendSymbolIndexesWithType (lldb::SymbolType symbol_type, std::vector<uint32_t>& indexes, uint32_t start_idx = 0, uint32_t end_index = UINT32_MAX) const; +            uint32_t    AppendSymbolIndexesWithTypeAndFlagsValue (lldb::SymbolType symbol_type, uint32_t flags_value, std::vector<uint32_t>& indexes, uint32_t start_idx = 0, uint32_t end_index = UINT32_MAX) const; +            uint32_t    AppendSymbolIndexesWithType (lldb::SymbolType symbol_type, Debug symbol_debug_type, Visibility symbol_visibility, std::vector<uint32_t>& matches, uint32_t start_idx = 0, uint32_t end_index = UINT32_MAX) const;              uint32_t    AppendSymbolIndexesWithName (const ConstString& symbol_name, std::vector<uint32_t>& matches);              uint32_t    AppendSymbolIndexesWithName (const ConstString& symbol_name, Debug symbol_debug_type, Visibility symbol_visibility, std::vector<uint32_t>& matches); -            uint32_t    AppendSymbolIndexesWithNameAndType (const ConstString& symbol_name, SymbolType symbol_type, std::vector<uint32_t>& matches); -            uint32_t    AppendSymbolIndexesWithNameAndType (const ConstString& symbol_name, SymbolType symbol_type, Debug symbol_debug_type, Visibility symbol_visibility, std::vector<uint32_t>& matches); -            uint32_t    AppendSymbolIndexesMatchingRegExAndType (const RegularExpression ®ex, SymbolType symbol_type, std::vector<uint32_t>& indexes); -            uint32_t    AppendSymbolIndexesMatchingRegExAndType (const RegularExpression ®ex, SymbolType symbol_type, Debug symbol_debug_type, Visibility symbol_visibility, std::vector<uint32_t>& indexes); -            size_t      FindAllSymbolsWithNameAndType (const ConstString &name, SymbolType symbol_type, std::vector<uint32_t>& symbol_indexes); -            size_t      FindAllSymbolsWithNameAndType (const ConstString &name, SymbolType symbol_type, Debug symbol_debug_type, Visibility symbol_visibility, std::vector<uint32_t>& symbol_indexes); -            size_t      FindAllSymbolsMatchingRexExAndType (const RegularExpression ®ex, SymbolType symbol_type, Debug symbol_debug_type, Visibility symbol_visibility, std::vector<uint32_t>& symbol_indexes); -            Symbol *    FindFirstSymbolWithNameAndType (const ConstString &name, SymbolType symbol_type, Debug symbol_debug_type, Visibility symbol_visibility); +            uint32_t    AppendSymbolIndexesWithNameAndType (const ConstString& symbol_name, lldb::SymbolType symbol_type, std::vector<uint32_t>& matches); +            uint32_t    AppendSymbolIndexesWithNameAndType (const ConstString& symbol_name, lldb::SymbolType symbol_type, Debug symbol_debug_type, Visibility symbol_visibility, std::vector<uint32_t>& matches); +            uint32_t    AppendSymbolIndexesMatchingRegExAndType (const RegularExpression ®ex, lldb::SymbolType symbol_type, std::vector<uint32_t>& indexes); +            uint32_t    AppendSymbolIndexesMatchingRegExAndType (const RegularExpression ®ex, lldb::SymbolType symbol_type, Debug symbol_debug_type, Visibility symbol_visibility, std::vector<uint32_t>& indexes); +            size_t      FindAllSymbolsWithNameAndType (const ConstString &name, lldb::SymbolType symbol_type, std::vector<uint32_t>& symbol_indexes); +            size_t      FindAllSymbolsWithNameAndType (const ConstString &name, lldb::SymbolType symbol_type, Debug symbol_debug_type, Visibility symbol_visibility, std::vector<uint32_t>& symbol_indexes); +            size_t      FindAllSymbolsMatchingRexExAndType (const RegularExpression ®ex, lldb::SymbolType symbol_type, Debug symbol_debug_type, Visibility symbol_visibility, std::vector<uint32_t>& symbol_indexes); +            Symbol *    FindFirstSymbolWithNameAndType (const ConstString &name, lldb::SymbolType symbol_type, Debug symbol_debug_type, Visibility symbol_visibility);              Symbol *    FindSymbolWithFileAddress (lldb::addr_t file_addr);  //            Symbol *    FindSymbolContainingAddress (const Address& value, const uint32_t* indexes, uint32_t num_indexes);  //            Symbol *    FindSymbolContainingAddress (const Address& value); diff --git a/lldb/include/lldb/lldb-enumerations.h b/lldb/include/lldb/lldb-enumerations.h index a283ae888d0..454893f1370 100644 --- a/lldb/include/lldb/lldb-enumerations.h +++ b/lldb/include/lldb/lldb-enumerations.h @@ -12,380 +12,446 @@  namespace lldb { -//---------------------------------------------------------------------- -// Process and Thread States -//---------------------------------------------------------------------- -typedef enum StateType -{ -    eStateInvalid = 0, -    eStateUnloaded,     ///< Process is object is valid, but not currently loaded -    eStateConnected,    ///< Process is connected to remote debug services, but not launched or attached to anything yet -    eStateAttaching,    ///< Process is currently trying to attach -    eStateLaunching,    ///< Process is in the process of launching -    eStateStopped,      ///< Process or thread is stopped and can be examined. -    eStateRunning,      ///< Process or thread is running and can't be examined. -    eStateStepping,     ///< Process or thread is in the process of stepping and can not be examined. -    eStateCrashed,      ///< Process or thread has crashed and can be examined. -    eStateDetached,     ///< Process has been detached and can't be examined. -    eStateExited,       ///< Process has exited and can't be examined. -    eStateSuspended     ///< Process or thread is in a suspended state as far -                        ///< as the debugger is concerned while other processes -                        ///< or threads get the chance to run. -} StateType; - -//---------------------------------------------------------------------- -// Launch Flags -//---------------------------------------------------------------------- -typedef enum LaunchFlags -{ -    eLaunchFlagNone         = 0u, -    eLaunchFlagDisableASLR  = (1u << 0),  ///< Disable Address Space Layout Randomization -    eLaunchFlagDisableSTDIO = (1u << 1),  ///< Disable stdio for inferior process (e.g. for a GUI app) -    eLaunchFlagLaunchInTTY  = (1u << 2)   ///< Launch the process in a new TTY if supported by the host  -} LaunchFlags; +    //---------------------------------------------------------------------- +    // Process and Thread States +    //---------------------------------------------------------------------- +    typedef enum StateType +    { +        eStateInvalid = 0, +        eStateUnloaded,     ///< Process is object is valid, but not currently loaded +        eStateConnected,    ///< Process is connected to remote debug services, but not launched or attached to anything yet +        eStateAttaching,    ///< Process is currently trying to attach +        eStateLaunching,    ///< Process is in the process of launching +        eStateStopped,      ///< Process or thread is stopped and can be examined. +        eStateRunning,      ///< Process or thread is running and can't be examined. +        eStateStepping,     ///< Process or thread is in the process of stepping and can not be examined. +        eStateCrashed,      ///< Process or thread has crashed and can be examined. +        eStateDetached,     ///< Process has been detached and can't be examined. +        eStateExited,       ///< Process has exited and can't be examined. +        eStateSuspended     ///< Process or thread is in a suspended state as far +                            ///< as the debugger is concerned while other processes +                            ///< or threads get the chance to run. +    } StateType; + +    //---------------------------------------------------------------------- +    // Launch Flags +    //---------------------------------------------------------------------- +    typedef enum LaunchFlags +    { +        eLaunchFlagNone         = 0u, +        eLaunchFlagDisableASLR  = (1u << 0),  ///< Disable Address Space Layout Randomization +        eLaunchFlagDisableSTDIO = (1u << 1),  ///< Disable stdio for inferior process (e.g. for a GUI app) +        eLaunchFlagLaunchInTTY  = (1u << 2)   ///< Launch the process in a new TTY if supported by the host  +    } LaunchFlags; +         +    //---------------------------------------------------------------------- +    // Thread Run Modes +    //---------------------------------------------------------------------- +    typedef enum RunMode { +        eOnlyThisThread, +        eAllThreads, +        eOnlyDuringStepping +    } RunMode; + +    //---------------------------------------------------------------------- +    // Byte ordering definitions +    //---------------------------------------------------------------------- +    typedef enum ByteOrder +    { +        eByteOrderInvalid   = 0, +        eByteOrderBig       = 1, +        eByteOrderPDP       = 2, +        eByteOrderLittle    = 4 +    } ByteOrder; + +    //---------------------------------------------------------------------- +    // Register encoding definitions +    //---------------------------------------------------------------------- +    typedef enum Encoding +    { +        eEncodingInvalid = 0, +        eEncodingUint,               // unsigned integer +        eEncodingSint,               // signed integer +        eEncodingIEEE754,            // float +        eEncodingVector              // vector registers +    } Encoding; + +    //---------------------------------------------------------------------- +    // Display format definitions +    //---------------------------------------------------------------------- +    typedef enum Format +    { +        eFormatDefault = 0, +        eFormatInvalid = 0, +        eFormatBoolean, +        eFormatBinary, +        eFormatBytes, +        eFormatBytesWithASCII, +        eFormatChar, +        eFormatCharPrintable,   // Only printable characters, space if not printable +        eFormatComplex,         // Floating point complex type +        eFormatComplexFloat = eFormatComplex, +        eFormatCString,         // NULL terminated C strings +        eFormatDecimal, +        eFormatEnum, +        eFormatHex, +        eFormatFloat, +        eFormatOctal, +        eFormatOSType,          // OS character codes encoded into an integer 'PICT' 'text' etc... +        eFormatUnicode16, +        eFormatUnicode32, +        eFormatUnsigned, +        eFormatPointer, +        eFormatVectorOfChar, +        eFormatVectorOfSInt8, +        eFormatVectorOfUInt8, +        eFormatVectorOfSInt16, +        eFormatVectorOfUInt16, +        eFormatVectorOfSInt32, +        eFormatVectorOfUInt32, +        eFormatVectorOfSInt64, +        eFormatVectorOfUInt64, +        eFormatVectorOfFloat32, +        eFormatVectorOfFloat64, +        eFormatVectorOfUInt128, +        eFormatComplexInteger   // Integer complex type + +    } Format; + +    //---------------------------------------------------------------------- +    // Description levels for "void GetDescription(Stream *, DescriptionLevel)" calls +    //---------------------------------------------------------------------- +    typedef enum DescriptionLevel +    { +        eDescriptionLevelBrief = 0, +        eDescriptionLevelFull, +        eDescriptionLevelVerbose, +        kNumDescriptionLevels +    } DescriptionLevel; + +    //---------------------------------------------------------------------- +    // Script interpreter types +    //---------------------------------------------------------------------- +    typedef enum ScriptLanguage +    { +        eScriptLanguageNone, +        eScriptLanguagePython, +        eScriptLanguageDefault = eScriptLanguagePython +    } ScriptLanguage; + +    //---------------------------------------------------------------------- +    // Register numbering types +    //---------------------------------------------------------------------- +    typedef enum RegisterKind +    { +        eRegisterKindGCC = 0,    // the register numbers seen in eh_frame +        eRegisterKindDWARF,      // the register numbers seen DWARF +        eRegisterKindGeneric,    // insn ptr reg, stack ptr reg, etc not specific to any particular target +        eRegisterKindGDB,        // the register numbers gdb uses (matches stabs numbers?) +        eRegisterKindLLDB,       // lldb's internal register numbers +        kNumRegisterKinds +    } RegisterKind; + +    //---------------------------------------------------------------------- +    // Thread stop reasons +    //---------------------------------------------------------------------- +    typedef enum StopReason +    { +        eStopReasonInvalid = 0, +        eStopReasonNone, +        eStopReasonTrace, +        eStopReasonBreakpoint, +        eStopReasonWatchpoint, +        eStopReasonSignal, +        eStopReasonException, +        eStopReasonPlanComplete +    } StopReason; + +    //---------------------------------------------------------------------- +    // Command Return Status Types +    //---------------------------------------------------------------------- +    typedef enum ReturnStatus +    { +        eReturnStatusInvalid, +        eReturnStatusSuccessFinishNoResult, +        eReturnStatusSuccessFinishResult, +        eReturnStatusSuccessContinuingNoResult, +        eReturnStatusSuccessContinuingResult, +        eReturnStatusStarted, +        eReturnStatusFailed, +        eReturnStatusQuit +    } ReturnStatus; + + +    //---------------------------------------------------------------------- +    // Connection Status Types +    //---------------------------------------------------------------------- +    typedef enum ConnectionStatus +    { +        eConnectionStatusSuccess,         // Success +        eConnectionStatusEndOfFile,       // End-of-file encountered +        eConnectionStatusError,           // Check GetError() for details +        eConnectionStatusTimedOut,        // Request timed out +        eConnectionStatusNoConnection,    // No connection +        eConnectionStatusLostConnection   // Lost connection while connected to a valid connection +    } ConnectionStatus; + +    typedef enum ErrorType +    { +        eErrorTypeInvalid, +        eErrorTypeGeneric,      ///< Generic errors that can be any value. +        eErrorTypeMachKernel,   ///< Mach kernel error codes. +        eErrorTypePOSIX         ///< POSIX error codes. +    } ErrorType; + + +    typedef enum ValueType +    { +        eValueTypeInvalid           = 0, +        eValueTypeVariableGlobal    = 1,    // globals variable +        eValueTypeVariableStatic    = 2,    // static variable +        eValueTypeVariableArgument  = 3,    // function argument variables +        eValueTypeVariableLocal     = 4,    // function local variables +        eValueTypeRegister          = 5,    // stack frame register value +        eValueTypeRegisterSet       = 6,    // A collection of stack frame register values +        eValueTypeConstResult       = 7     // constant result variables +    } ValueType; + +    //---------------------------------------------------------------------- +    // Token size/granularities for Input Readers +    //---------------------------------------------------------------------- + +    typedef enum InputReaderGranularity +    { +        eInputReaderGranularityInvalid = 0, +        eInputReaderGranularityByte, +        eInputReaderGranularityWord, +        eInputReaderGranularityLine, +        eInputReaderGranularityAll +    } InputReaderGranularity; + +    //------------------------------------------------------------------ +    /// These mask bits allow a common interface for queries that can +    /// limit the amount of information that gets parsed to only the +    /// information that is requested. These bits also can indicate what +    /// actually did get resolved during query function calls. +    /// +    /// Each definition corresponds to a one of the member variables +    /// in this class, and requests that that item be resolved, or +    /// indicates that the member did get resolved. +    //------------------------------------------------------------------ +    typedef enum SymbolContextItem +    { +        eSymbolContextTarget     = (1 << 0), ///< Set when \a target is requested from a query, or was located in query results +        eSymbolContextModule     = (1 << 1), ///< Set when \a module is requested from a query, or was located in query results +        eSymbolContextCompUnit   = (1 << 2), ///< Set when \a comp_unit is requested from a query, or was located in query results +        eSymbolContextFunction   = (1 << 3), ///< Set when \a function is requested from a query, or was located in query results +        eSymbolContextBlock      = (1 << 4), ///< Set when the deepest \a block is requested from a query, or was located in query results +        eSymbolContextLineEntry  = (1 << 5), ///< Set when \a line_entry is requested from a query, or was located in query results +        eSymbolContextSymbol     = (1 << 6), ///< Set when \a symbol is requested from a query, or was located in query results +        eSymbolContextEverything = ((eSymbolContextSymbol << 1) - 1)  ///< Indicates to try and lookup everything up during a query. +    } SymbolContextItem; + +    typedef enum Permissions +    { +        ePermissionsWritable = (1 << 0), +        ePermissionsReadable = (1 << 1), +        ePermissionsExecutable = (1 << 2) +    } Permissions; + +    typedef enum InputReaderAction +    { +        eInputReaderActivate,   // reader is newly pushed onto the reader stack  +        eInputReaderReactivate, // reader is on top of the stack again after another reader was popped off  +        eInputReaderDeactivate, // another reader was pushed on the stack  +        eInputReaderGotToken,   // reader got one of its tokens (granularity) +        eInputReaderInterrupt,  // reader received an interrupt signal (probably from a control-c) +        eInputReaderEndOfFile,  // reader received an EOF char (probably from a control-d) +        eInputReaderDone        // reader was just popped off the stack and is done +    } InputReaderAction; + +    typedef enum BreakpointEventType +    { +        eBreakpointEventTypeInvalidType         = (1u << 0), +        eBreakpointEventTypeAdded               = (1u << 1), +        eBreakpointEventTypeRemoved             = (1u << 2), +        eBreakpointEventTypeLocationsAdded      = (1u << 3), +        eBreakpointEventTypeLocationsRemoved    = (1u << 4), +        eBreakpointEventTypeLocationsResolved   = (1u << 5) +    } BreakpointEventType; + + +    //---------------------------------------------------------------------- +    /// Programming language type. +    /// +    /// These enumerations use the same language enumerations as the DWARF +    /// specification for ease of use and consistency. +    //---------------------------------------------------------------------- +    typedef enum LanguageType +    { +        eLanguageTypeUnknown         = 0x0000,   ///< Unknown or invalid language value. +        eLanguageTypeC89             = 0x0001,   ///< ISO C:1989. +        eLanguageTypeC               = 0x0002,   ///< Non-standardized C, such as K&R. +        eLanguageTypeAda83           = 0x0003,   ///< ISO Ada:1983. +        eLanguageTypeC_plus_plus     = 0x0004,   ///< ISO C++:1998. +        eLanguageTypeCobol74         = 0x0005,   ///< ISO Cobol:1974. +        eLanguageTypeCobol85         = 0x0006,   ///< ISO Cobol:1985. +        eLanguageTypeFortran77       = 0x0007,   ///< ISO Fortran 77. +        eLanguageTypeFortran90       = 0x0008,   ///< ISO Fortran 90. +        eLanguageTypePascal83        = 0x0009,   ///< ISO Pascal:1983. +        eLanguageTypeModula2         = 0x000a,   ///< ISO Modula-2:1996. +        eLanguageTypeJava            = 0x000b,   ///< Java. +        eLanguageTypeC99             = 0x000c,   ///< ISO C:1999. +        eLanguageTypeAda95           = 0x000d,   ///< ISO Ada:1995. +        eLanguageTypeFortran95       = 0x000e,   ///< ISO Fortran 95. +        eLanguageTypePLI             = 0x000f,   ///< ANSI PL/I:1976. +        eLanguageTypeObjC            = 0x0010,   ///< Objective-C. +        eLanguageTypeObjC_plus_plus  = 0x0011,   ///< Objective-C++. +        eLanguageTypeUPC             = 0x0012,   ///< Unified Parallel C. +        eLanguageTypeD               = 0x0013,   ///< D. +        eLanguageTypePython          = 0x0014    ///< Python. +    } LanguageType; + + +    typedef enum AccessType +    { +        eAccessNone, +        eAccessPublic, +        eAccessPrivate, +        eAccessProtected, +        eAccessPackage +    } AccessType; + +    typedef enum CommandArgumentType +    { +        eArgTypeAddress = 0, +        eArgTypeAliasName, +        eArgTypeAliasOptions, +        eArgTypeArchitecture, +        eArgTypeBoolean, +        eArgTypeBreakpointID, +        eArgTypeBreakpointIDRange, +        eArgTypeByteSize, +        eArgTypeClassName, +        eArgTypeCommandName, +        eArgTypeCount, +        eArgTypeEndAddress, +        eArgTypeExpression, +        eArgTypeExprFormat, +        eArgTypeFilename, +        eArgTypeFormat, +        eArgTypeFrameIndex, +        eArgTypeFullName, +        eArgTypeFunctionName, +        eArgTypeIndex, +        eArgTypeLineNum, +        eArgTypeLogCategory, +        eArgTypeLogChannel, +        eArgTypeMethod, +        eArgTypeName, +        eArgTypeNewPathPrefix, +        eArgTypeNumLines, +        eArgTypeNumberPerLine, +        eArgTypeOffset, +        eArgTypeOldPathPrefix, +        eArgTypeOneLiner, +        eArgTypePath,  +        eArgTypePid, +        eArgTypePlugin, +        eArgTypeProcessName, +        eArgTypeQueueName, +        eArgTypeRegisterName, +        eArgTypeRegularExpression, +        eArgTypeRunArgs, +        eArgTypeRunMode, +        eArgTypeScriptLang, +        eArgTypeSearchWord, +        eArgTypeSelector, +        eArgTypeSettingIndex, +        eArgTypeSettingKey, +        eArgTypeSettingPrefix, +        eArgTypeSettingVariableName, +        eArgTypeShlibName, +        eArgTypeSourceFile, +        eArgTypeSortOrder, +        eArgTypeStartAddress, +        eArgTypeSymbol, +        eArgTypeThreadID, +        eArgTypeThreadIndex, +        eArgTypeThreadName, +        eArgTypeUnixSignal, +        eArgTypeVarName, +        eArgTypeValue, +        eArgTypeWidth, +        eArgTypeNone, +        eArgTypeLastArg  // Always keep this entry as the last entry in this enumeration!! +    } CommandArgumentType; + +    //---------------------------------------------------------------------- +    // Symbol types +    //---------------------------------------------------------------------- +    typedef enum SymbolType +    { +        eSymbolTypeAny = 0, +        eSymbolTypeInvalid = 0, +        eSymbolTypeAbsolute, +        eSymbolTypeExtern, +        eSymbolTypeCode, +        eSymbolTypeData, +        eSymbolTypeTrampoline, +        eSymbolTypeRuntime, +        eSymbolTypeException, +        eSymbolTypeSourceFile, +        eSymbolTypeHeaderFile, +        eSymbolTypeObjectFile, +        eSymbolTypeCommonBlock, +        eSymbolTypeBlock, +        eSymbolTypeLocal, +        eSymbolTypeParam, +        eSymbolTypeVariable, +        eSymbolTypeVariableType, +        eSymbolTypeLineEntry, +        eSymbolTypeLineHeader, +        eSymbolTypeScopeBegin, +        eSymbolTypeScopeEnd, +        eSymbolTypeAdditional, // When symbols take more than one entry, the extra entries get this type +        eSymbolTypeCompiler, +        eSymbolTypeInstrumentation, +        eSymbolTypeUndefined +    } SymbolType; -//---------------------------------------------------------------------- -// Thread Run Modes -//---------------------------------------------------------------------- -typedef enum RunMode { -    eOnlyThisThread, -    eAllThreads, -    eOnlyDuringStepping -} RunMode; - -//---------------------------------------------------------------------- -// Byte ordering definitions -//---------------------------------------------------------------------- -typedef enum ByteOrder -{ -    eByteOrderInvalid   = 0, -    eByteOrderBig       = 1, -    eByteOrderPDP       = 2, -    eByteOrderLittle    = 4 -} ByteOrder; - -//---------------------------------------------------------------------- -// Register encoding definitions -//---------------------------------------------------------------------- -typedef enum Encoding -{ -    eEncodingInvalid = 0, -    eEncodingUint,               // unsigned integer -    eEncodingSint,               // signed integer -    eEncodingIEEE754,            // float -    eEncodingVector              // vector registers -} Encoding; - -//---------------------------------------------------------------------- -// Display format definitions -//---------------------------------------------------------------------- -typedef enum Format -{ -    eFormatDefault = 0, -    eFormatInvalid = 0, -    eFormatBoolean, -    eFormatBinary, -    eFormatBytes, -    eFormatBytesWithASCII, -    eFormatChar, -    eFormatCharPrintable,   // Only printable characters, space if not printable -    eFormatComplex,         // Floating point complex type -    eFormatComplexFloat = eFormatComplex, -    eFormatCString,         // NULL terminated C strings -    eFormatDecimal, -    eFormatEnum, -    eFormatHex, -    eFormatFloat, -    eFormatOctal, -    eFormatOSType,          // OS character codes encoded into an integer 'PICT' 'text' etc... -    eFormatUnicode16, -    eFormatUnicode32, -    eFormatUnsigned, -    eFormatPointer, -    eFormatVectorOfChar, -    eFormatVectorOfSInt8, -    eFormatVectorOfUInt8, -    eFormatVectorOfSInt16, -    eFormatVectorOfUInt16, -    eFormatVectorOfSInt32, -    eFormatVectorOfUInt32, -    eFormatVectorOfSInt64, -    eFormatVectorOfUInt64, -    eFormatVectorOfFloat32, -    eFormatVectorOfFloat64, -    eFormatVectorOfUInt128, -    eFormatComplexInteger   // Integer complex type - -} Format; - -//---------------------------------------------------------------------- -// Description levels for "void GetDescription(Stream *, DescriptionLevel)" calls -//---------------------------------------------------------------------- -typedef enum DescriptionLevel -{ -    eDescriptionLevelBrief = 0, -    eDescriptionLevelFull, -    eDescriptionLevelVerbose, -    kNumDescriptionLevels -} DescriptionLevel; - -//---------------------------------------------------------------------- -// Script interpreter types -//---------------------------------------------------------------------- -typedef enum ScriptLanguage -{ -    eScriptLanguageNone, -    eScriptLanguagePython, -    eScriptLanguageDefault = eScriptLanguagePython -} ScriptLanguage; - -//---------------------------------------------------------------------- -// Register numbering types -//---------------------------------------------------------------------- -typedef enum RegisterKind -{ -    eRegisterKindGCC = 0,    // the register numbers seen in eh_frame -    eRegisterKindDWARF,      // the register numbers seen DWARF -    eRegisterKindGeneric,    // insn ptr reg, stack ptr reg, etc not specific to any particular target -    eRegisterKindGDB,        // the register numbers gdb uses (matches stabs numbers?) -    eRegisterKindLLDB,       // lldb's internal register numbers -    kNumRegisterKinds -} RegisterKind; - -//---------------------------------------------------------------------- -// Thread stop reasons -//---------------------------------------------------------------------- -typedef enum StopReason -{ -    eStopReasonInvalid = 0, -    eStopReasonNone, -    eStopReasonTrace, -    eStopReasonBreakpoint, -    eStopReasonWatchpoint, -    eStopReasonSignal, -    eStopReasonException, -    eStopReasonPlanComplete -} StopReason; - -//---------------------------------------------------------------------- -// Command Return Status Types -//---------------------------------------------------------------------- -typedef enum ReturnStatus -{ -    eReturnStatusInvalid, -    eReturnStatusSuccessFinishNoResult, -    eReturnStatusSuccessFinishResult, -    eReturnStatusSuccessContinuingNoResult, -    eReturnStatusSuccessContinuingResult, -    eReturnStatusStarted, -    eReturnStatusFailed, -    eReturnStatusQuit -} ReturnStatus; - - -//---------------------------------------------------------------------- -// Connection Status Types -//---------------------------------------------------------------------- -typedef enum ConnectionStatus -{ -    eConnectionStatusSuccess,         // Success -    eConnectionStatusEndOfFile,       // End-of-file encountered -    eConnectionStatusError,           // Check GetError() for details -    eConnectionStatusTimedOut,        // Request timed out -    eConnectionStatusNoConnection,    // No connection -    eConnectionStatusLostConnection   // Lost connection while connected to a valid connection -} ConnectionStatus; - -typedef enum ErrorType -{ -    eErrorTypeInvalid, -    eErrorTypeGeneric,      ///< Generic errors that can be any value. -    eErrorTypeMachKernel,   ///< Mach kernel error codes. -    eErrorTypePOSIX         ///< POSIX error codes. -} ErrorType; - - -typedef enum ValueType -{ -    eValueTypeInvalid           = 0, -    eValueTypeVariableGlobal    = 1,    // globals variable -    eValueTypeVariableStatic    = 2,    // static variable -    eValueTypeVariableArgument  = 3,    // function argument variables -    eValueTypeVariableLocal     = 4,    // function local variables -    eValueTypeRegister          = 5,    // stack frame register value -    eValueTypeRegisterSet       = 6,    // A collection of stack frame register values -    eValueTypeConstResult       = 7     // constant result variables -} ValueType; - -//---------------------------------------------------------------------- -// Token size/granularities for Input Readers -//---------------------------------------------------------------------- - -typedef enum InputReaderGranularity -{ -    eInputReaderGranularityInvalid = 0, -    eInputReaderGranularityByte, -    eInputReaderGranularityWord, -    eInputReaderGranularityLine, -    eInputReaderGranularityAll -} InputReaderGranularity; - -//------------------------------------------------------------------ -/// These mask bits allow a common interface for queries that can -/// limit the amount of information that gets parsed to only the -/// information that is requested. These bits also can indicate what -/// actually did get resolved during query function calls. -/// -/// Each definition corresponds to a one of the member variables -/// in this class, and requests that that item be resolved, or -/// indicates that the member did get resolved. -//------------------------------------------------------------------ -typedef enum SymbolContextItem -{ -    eSymbolContextTarget     = (1 << 0), ///< Set when \a target is requested from a query, or was located in query results -    eSymbolContextModule     = (1 << 1), ///< Set when \a module is requested from a query, or was located in query results -    eSymbolContextCompUnit   = (1 << 2), ///< Set when \a comp_unit is requested from a query, or was located in query results -    eSymbolContextFunction   = (1 << 3), ///< Set when \a function is requested from a query, or was located in query results -    eSymbolContextBlock      = (1 << 4), ///< Set when the deepest \a block is requested from a query, or was located in query results -    eSymbolContextLineEntry  = (1 << 5), ///< Set when \a line_entry is requested from a query, or was located in query results -    eSymbolContextSymbol     = (1 << 6), ///< Set when \a symbol is requested from a query, or was located in query results -    eSymbolContextEverything = ((eSymbolContextSymbol << 1) - 1)  ///< Indicates to try and lookup everything up during a query. -} SymbolContextItem; - -typedef enum Permissions -{ -    ePermissionsWritable = (1 << 0), -    ePermissionsReadable = (1 << 1), -    ePermissionsExecutable = (1 << 2) -} Permissions; - -typedef enum InputReaderAction -{ -    eInputReaderActivate,   // reader is newly pushed onto the reader stack  -    eInputReaderReactivate, // reader is on top of the stack again after another reader was popped off  -    eInputReaderDeactivate, // another reader was pushed on the stack  -    eInputReaderGotToken,   // reader got one of its tokens (granularity) -    eInputReaderInterrupt,  // reader received an interrupt signal (probably from a control-c) -    eInputReaderEndOfFile,  // reader received an EOF char (probably from a control-d) -    eInputReaderDone        // reader was just popped off the stack and is done -} InputReaderAction; - -typedef enum BreakpointEventType -{ -    eBreakpointEventTypeInvalidType         = (1u << 0), -    eBreakpointEventTypeAdded               = (1u << 1), -    eBreakpointEventTypeRemoved             = (1u << 2), -    eBreakpointEventTypeLocationsAdded      = (1u << 3), -    eBreakpointEventTypeLocationsRemoved    = (1u << 4), -    eBreakpointEventTypeLocationsResolved   = (1u << 5) -} BreakpointEventType; - - -//---------------------------------------------------------------------- -/// Programming language type. -/// -/// These enumerations use the same language enumerations as the DWARF -/// specification for ease of use and consistency. -//---------------------------------------------------------------------- -typedef enum LanguageType -{ -    eLanguageTypeUnknown         = 0x0000,   ///< Unknown or invalid language value. -    eLanguageTypeC89             = 0x0001,   ///< ISO C:1989. -    eLanguageTypeC               = 0x0002,   ///< Non-standardized C, such as K&R. -    eLanguageTypeAda83           = 0x0003,   ///< ISO Ada:1983. -    eLanguageTypeC_plus_plus     = 0x0004,   ///< ISO C++:1998. -    eLanguageTypeCobol74         = 0x0005,   ///< ISO Cobol:1974. -    eLanguageTypeCobol85         = 0x0006,   ///< ISO Cobol:1985. -    eLanguageTypeFortran77       = 0x0007,   ///< ISO Fortran 77. -    eLanguageTypeFortran90       = 0x0008,   ///< ISO Fortran 90. -    eLanguageTypePascal83        = 0x0009,   ///< ISO Pascal:1983. -    eLanguageTypeModula2         = 0x000a,   ///< ISO Modula-2:1996. -    eLanguageTypeJava            = 0x000b,   ///< Java. -    eLanguageTypeC99             = 0x000c,   ///< ISO C:1999. -    eLanguageTypeAda95           = 0x000d,   ///< ISO Ada:1995. -    eLanguageTypeFortran95       = 0x000e,   ///< ISO Fortran 95. -    eLanguageTypePLI             = 0x000f,   ///< ANSI PL/I:1976. -    eLanguageTypeObjC            = 0x0010,   ///< Objective-C. -    eLanguageTypeObjC_plus_plus  = 0x0011,   ///< Objective-C++. -    eLanguageTypeUPC             = 0x0012,   ///< Unified Parallel C. -    eLanguageTypeD               = 0x0013,   ///< D. -    eLanguageTypePython          = 0x0014    ///< Python. -} LanguageType; - - -typedef enum AccessType -{ -    eAccessNone, -    eAccessPublic, -    eAccessPrivate, -    eAccessProtected, -    eAccessPackage -} AccessType; - -typedef enum CommandArgumentType -{ -    eArgTypeAddress = 0, -    eArgTypeAliasName, -    eArgTypeAliasOptions, -    eArgTypeArchitecture, -    eArgTypeBoolean, -    eArgTypeBreakpointID, -    eArgTypeBreakpointIDRange, -    eArgTypeByteSize, -    eArgTypeClassName, -    eArgTypeCommandName, -    eArgTypeCount, -    eArgTypeEndAddress, -    eArgTypeExpression, -    eArgTypeExprFormat, -    eArgTypeFilename, -    eArgTypeFormat, -    eArgTypeFrameIndex, -    eArgTypeFullName, -    eArgTypeFunctionName, -    eArgTypeIndex, -    eArgTypeLineNum, -    eArgTypeLogCategory, -    eArgTypeLogChannel, -    eArgTypeMethod, -    eArgTypeName, -    eArgTypeNewPathPrefix, -    eArgTypeNumLines, -    eArgTypeNumberPerLine, -    eArgTypeOffset, -    eArgTypeOldPathPrefix, -    eArgTypeOneLiner, -    eArgTypePath,  -    eArgTypePid, -    eArgTypePlugin, -    eArgTypeProcessName, -    eArgTypeQueueName, -    eArgTypeRegisterName, -    eArgTypeRegularExpression, -    eArgTypeRunArgs, -    eArgTypeRunMode, -    eArgTypeScriptLang, -    eArgTypeSearchWord, -    eArgTypeSelector, -    eArgTypeSettingIndex, -    eArgTypeSettingKey, -    eArgTypeSettingPrefix, -    eArgTypeSettingVariableName, -    eArgTypeShlibName, -    eArgTypeSourceFile, -    eArgTypeSortOrder, -    eArgTypeStartAddress, -    eArgTypeSymbol, -    eArgTypeThreadID, -    eArgTypeThreadIndex, -    eArgTypeThreadName, -    eArgTypeUnixSignal, -    eArgTypeVarName, -    eArgTypeValue, -    eArgTypeWidth, -    eArgTypeNone, -    eArgTypeLastArg  // Always keep this entry as the last entry in this enumeration!! -} CommandArgumentType; +    typedef enum SectionType +    { +        eSectionTypeInvalid, +        eSectionTypeCode, +        eSectionTypeContainer,              // The section contains child sections +        eSectionTypeData, +        eSectionTypeDataCString,            // Inlined C string data +        eSectionTypeDataCStringPointers,    // Pointers to C string data +        eSectionTypeDataSymbolAddress,      // Address of a symbol in the symbol table +        eSectionTypeData4, +        eSectionTypeData8, +        eSectionTypeData16, +        eSectionTypeDataPointers, +        eSectionTypeDebug, +        eSectionTypeZeroFill, +        eSectionTypeDataObjCMessageRefs,    // Pointer to function pointer + selector +        eSectionTypeDataObjCCFStrings,      // Objective C const CFString/NSString objects +        eSectionTypeDWARFDebugAbbrev, +        eSectionTypeDWARFDebugAranges, +        eSectionTypeDWARFDebugFrame, +        eSectionTypeDWARFDebugInfo, +        eSectionTypeDWARFDebugLine, +        eSectionTypeDWARFDebugLoc, +        eSectionTypeDWARFDebugMacInfo, +        eSectionTypeDWARFDebugPubNames, +        eSectionTypeDWARFDebugPubTypes, +        eSectionTypeDWARFDebugRanges, +        eSectionTypeDWARFDebugStr, +        eSectionTypeEHFrame, +        eSectionTypeOther +         +    } SectionType;  } // namespace lldb diff --git a/lldb/include/lldb/lldb-private-enumerations.h b/lldb/include/lldb/lldb-private-enumerations.h index c4b4d15254a..ba22e71ec4e 100644 --- a/lldb/include/lldb/lldb-private-enumerations.h +++ b/lldb/include/lldb/lldb-private-enumerations.h @@ -67,73 +67,6 @@ typedef enum Vote      eVoteYes        =  1  } Vote; -//---------------------------------------------------------------------- -// Symbol types -//---------------------------------------------------------------------- -typedef enum SymbolType -{ -    eSymbolTypeAny = 0, -    eSymbolTypeInvalid = 0, -    eSymbolTypeAbsolute, -    eSymbolTypeExtern, -    eSymbolTypeCode, -    eSymbolTypeData, -    eSymbolTypeTrampoline, -    eSymbolTypeRuntime, -    eSymbolTypeException, -    eSymbolTypeSourceFile, -    eSymbolTypeHeaderFile, -    eSymbolTypeObjectFile, -    eSymbolTypeCommonBlock, -    eSymbolTypeBlock, -    eSymbolTypeLocal, -    eSymbolTypeParam, -    eSymbolTypeVariable, -    eSymbolTypeVariableType, -    eSymbolTypeLineEntry, -    eSymbolTypeLineHeader, -    eSymbolTypeScopeBegin, -    eSymbolTypeScopeEnd, -    eSymbolTypeAdditional, // When symbols take more than one entry, the extra entries get this type -    eSymbolTypeCompiler, -    eSymbolTypeInstrumentation, -    eSymbolTypeUndefined -} SymbolType; - -typedef enum SectionType -{ -    eSectionTypeInvalid, -    eSectionTypeCode, -    eSectionTypeContainer,              // The section contains child sections -    eSectionTypeData, -    eSectionTypeDataCString,            // Inlined C string data -    eSectionTypeDataCStringPointers,    // Pointers to C string data -    eSectionTypeDataSymbolAddress,      // Address of a symbol in the symbol table -    eSectionTypeData4, -    eSectionTypeData8, -    eSectionTypeData16, -    eSectionTypeDataPointers, -    eSectionTypeDebug, -    eSectionTypeZeroFill, -    eSectionTypeDataObjCMessageRefs,    // Pointer to function pointer + selector -    eSectionTypeDataObjCCFStrings,      // Objective C const CFString/NSString objects -    eSectionTypeDWARFDebugAbbrev, -    eSectionTypeDWARFDebugAranges, -    eSectionTypeDWARFDebugFrame, -    eSectionTypeDWARFDebugInfo, -    eSectionTypeDWARFDebugLine, -    eSectionTypeDWARFDebugLoc, -    eSectionTypeDWARFDebugMacInfo, -    eSectionTypeDWARFDebugPubNames, -    eSectionTypeDWARFDebugPubTypes, -    eSectionTypeDWARFDebugRanges, -    eSectionTypeDWARFDebugStr, -    eSectionTypeEHFrame, -    eSectionTypeOther - -} SectionType; - -  typedef enum ArchitectureType   {      eArchTypeInvalid, diff --git a/lldb/include/lldb/lldb-private.h b/lldb/include/lldb/lldb-private.h index 6a3ec9f838e..90590601d94 100644 --- a/lldb/include/lldb/lldb-private.h +++ b/lldb/include/lldb/lldb-private.h @@ -70,7 +70,7 @@ const char *  GetVoteAsCString (Vote vote);  const char * -GetSectionTypeAsCString (SectionType sect_type); +GetSectionTypeAsCString (lldb::SectionType sect_type);  bool  NameMatches (const char *name, NameMatchType match_type, const char *match); diff --git a/lldb/source/API/SBAddress.cpp b/lldb/source/API/SBAddress.cpp index 61ad71b633c..6c357f9ef53 100644 --- a/lldb/source/API/SBAddress.cpp +++ b/lldb/source/API/SBAddress.cpp @@ -12,6 +12,7 @@  #include "lldb/API/SBStream.h"  #include "lldb/Core/Address.h"  #include "lldb/Core/Log.h" +#include "lldb/Core/Module.h"  #include "lldb/Host/Mutex.h"  #include "lldb/Target/Target.h" @@ -170,3 +171,31 @@ SBAddress::GetDescription (SBStream &description)      return true;  } + +SectionType +SBAddress::GetSectionType () +{ +    if (m_opaque_ap.get()) +    { +        const Section *section = m_opaque_ap->GetSection(); +        if (section) +            return section->GetType(); +    } +    return eSectionTypeInvalid; +} + + +SBModule +SBAddress::GetModule () +{ +    SBModule sb_module; +    if (m_opaque_ap.get()) +    { +        const Module *module = m_opaque_ap->GetModule(); +        if (module) +            *sb_module = module->GetSP(); +    } +    return sb_module; +} + + diff --git a/lldb/source/API/SBSymbol.cpp b/lldb/source/API/SBSymbol.cpp index ef8af558c5d..ce232bf3f6a 100644 --- a/lldb/source/API/SBSymbol.cpp +++ b/lldb/source/API/SBSymbol.cpp @@ -198,3 +198,11 @@ SBSymbol::GetPrologueByteSize ()          return m_opaque_ptr->GetPrologueByteSize();      return 0;  } + +SymbolType +SBSymbol::GetType () +{ +    if (m_opaque_ptr) +        return m_opaque_ptr->GetType(); +    return eSymbolTypeInvalid; +} diff --git a/lldb/source/Core/Module.cpp b/lldb/source/Core/Module.cpp index 708ff7172ba..7ceff588d16 100644 --- a/lldb/source/Core/Module.cpp +++ b/lldb/source/Core/Module.cpp @@ -74,7 +74,7 @@ Module::~Module()  ModuleSP -Module::GetSP () +Module::GetSP () const  {      return ModuleList::GetModuleSP (this);  } diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h index 991d92907f4..735fb54f07e 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h +++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h @@ -168,7 +168,9 @@ public:      const DWARFDebugRanges* DebugRanges() const;      const lldb_private::DataExtractor& -    GetCachedSectionData (uint32_t got_flag, lldb_private::SectionType sect_type, lldb_private::DataExtractor &data); +    GetCachedSectionData (uint32_t got_flag,  +                          lldb::SectionType sect_type,  +                          lldb_private::DataExtractor &data);      static bool      SupportedVersion(uint16_t version);  | 

