summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2011-03-31 01:08:07 +0000
committerGreg Clayton <gclayton@apple.com>2011-03-31 01:08:07 +0000
commit05d2b7f741f96220b3a88c9b25a08bf7faead2b0 (patch)
treea66c768c9a2aedc89b880375819b7d2d808e9baf
parent0e43f321b6dd79d522aec2af33f3f793c99ba881 (diff)
downloadbcm5719-llvm-05d2b7f741f96220b3a88c9b25a08bf7faead2b0.tar.gz
bcm5719-llvm-05d2b7f741f96220b3a88c9b25a08bf7faead2b0.zip
Added some functions to our API related to classifying symbols as code, data,
const data, etc, and also for SBAddress objects to classify their type of section they are in and also getting the module for a section offset address. lldb::SymbolType SBSymbol::GetType(); lldb::SectionType SBAddress::GetSectionType (); lldb::SBModule SBAddress::GetModule (); llvm-svn: 128602
-rw-r--r--lldb/include/lldb/API/SBAddress.h7
-rw-r--r--lldb/include/lldb/API/SBModule.h3
-rw-r--r--lldb/include/lldb/API/SBSymbol.h3
-rw-r--r--lldb/include/lldb/Core/Module.h8
-rw-r--r--lldb/include/lldb/Core/ModuleList.h2
-rw-r--r--lldb/include/lldb/Core/Section.h8
-rw-r--r--lldb/include/lldb/Symbol/Symbol.h12
-rw-r--r--lldb/include/lldb/Symbol/Symtab.h26
-rw-r--r--lldb/include/lldb/lldb-enumerations.h812
-rw-r--r--lldb/include/lldb/lldb-private-enumerations.h67
-rw-r--r--lldb/include/lldb/lldb-private.h2
-rw-r--r--lldb/source/API/SBAddress.cpp29
-rw-r--r--lldb/source/API/SBSymbol.cpp8
-rw-r--r--lldb/source/Core/Module.cpp2
-rw-r--r--lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h4
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 &regex,
- 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 &regex, SymbolType symbol_type, std::vector<uint32_t>& indexes);
- uint32_t AppendSymbolIndexesMatchingRegExAndType (const RegularExpression &regex, 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 &regex, 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 &regex, lldb::SymbolType symbol_type, std::vector<uint32_t>& indexes);
+ uint32_t AppendSymbolIndexesMatchingRegExAndType (const RegularExpression &regex, 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 &regex, 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);
OpenPOWER on IntegriCloud