Doxygenify comments.

llvm-svn: 369669
This commit is contained in:
Adrian Prantl 2019-08-22 16:52:37 +00:00
parent ebcfc9eaed
commit 7be93589c4
1 changed files with 297 additions and 279 deletions

View File

@ -69,21 +69,22 @@
namespace lldb {
// Process and Thread States
/// Process and Thread States.
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
/// launched or attached to anything yet
eStateAttaching, ///< Process is currently trying to attach
eStateLaunching, ///< Process is in the process of launching
// The state changes eStateAttaching and eStateLaunching are both sent while the
// private state thread is either not yet started or paused. For that reason, they
// should only be signaled as public state changes, and not private state changes.
// The state changes eStateAttaching and eStateLaunching are both sent while
// the private state thread is either not yet started or paused. For that
// reason, they should only be signaled as public state changes, and not
// private state changes.
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.
/// 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.
@ -93,16 +94,17 @@ enum StateType {
kLastStateType = eStateSuspended
};
// Launch Flags
/// Launch Flags.
FLAGS_ENUM(LaunchFlags){
eLaunchFlagNone = 0u,
eLaunchFlagExec = (1u << 0), ///< Exec when launching and turn the calling
///process into a new process
/// process into a new process
eLaunchFlagDebug = (1u << 1), ///< Stop as soon as the process launches to
///allow the process to be debugged
eLaunchFlagStopAtEntry = (1u << 2), ///< Stop at the program entry point
///instead of auto-continuing when
///launching or attaching at entry point
/// allow the process to be debugged
eLaunchFlagStopAtEntry = (1u
<< 2), ///< Stop at the program entry point
/// instead of auto-continuing when
/// launching or attaching at entry point
eLaunchFlagDisableASLR =
(1u << 3), ///< Disable Address Space Layout Randomization
eLaunchFlagDisableSTDIO =
@ -113,23 +115,23 @@ FLAGS_ENUM(LaunchFlags){
(1u << 6), ///< Launch the process inside a shell to get shell expansion
eLaunchFlagLaunchInSeparateProcessGroup =
(1u << 7), ///< Launch the process in a separate process group
eLaunchFlagDontSetExitStatus = (1u << 8), ///< If you are going to hand the
///process off (e.g. to
///debugserver)
///< If you are going to hand the process off (e.g. to
///< debugserver)
eLaunchFlagDontSetExitStatus = (1u << 8),
///< set this flag so lldb & the handee don't race to set its exit status.
eLaunchFlagDetachOnError = (1u << 9), ///< If set, then the client stub
///should detach rather than killing
///the debugee
///< should detach rather than killing
///< the debugee
///< if it loses connection with lldb.
eLaunchFlagShellExpandArguments =
(1u << 10), ///< Perform shell-style argument expansion
eLaunchFlagCloseTTYOnExit = (1u << 11), ///< Close the open TTY on exit
};
// Thread Run Modes
/// Thread Run Modes.
enum RunMode { eOnlyThisThread, eAllThreads, eOnlyDuringStepping };
// Byte ordering definitions
/// Byte ordering definitions.
enum ByteOrder {
eByteOrderInvalid = 0,
eByteOrderBig = 1,
@ -137,16 +139,16 @@ enum ByteOrder {
eByteOrderLittle = 4
};
// Register encoding definitions
/// Register encoding definitions.
enum Encoding {
eEncodingInvalid = 0,
eEncodingUint, // unsigned integer
eEncodingSint, // signed integer
eEncodingIEEE754, // float
eEncodingVector // vector registers
eEncodingUint, ///< unsigned integer
eEncodingSint, ///< signed integer
eEncodingIEEE754, ///< float
eEncodingVector ///< vector registers
};
// Display format definitions
/// Display format definitions.
enum Format {
eFormatDefault = 0,
eFormatInvalid = 0,
@ -155,18 +157,18 @@ enum Format {
eFormatBytes,
eFormatBytesWithASCII,
eFormatChar,
eFormatCharPrintable, // Only printable characters, space if not printable
eFormatComplex, // Floating point complex type
eFormatCharPrintable, ///< Only printable characters, space if not printable
eFormatComplex, ///< Floating point complex type
eFormatComplexFloat = eFormatComplex,
eFormatCString, // NULL terminated C strings
eFormatCString, ///< NULL terminated C strings
eFormatDecimal,
eFormatEnum,
eFormatHex,
eFormatHexUppercase,
eFormatFloat,
eFormatOctal,
eFormatOSType, // OS character codes encoded into an integer 'PICT' 'text'
// etc...
eFormatOSType, ///< OS character codes encoded into an integer 'PICT' 'text'
///< etc...
eFormatUnicode16,
eFormatUnicode32,
eFormatUnsigned,
@ -184,21 +186,21 @@ enum Format {
eFormatVectorOfFloat32,
eFormatVectorOfFloat64,
eFormatVectorOfUInt128,
eFormatComplexInteger, // Integer complex type
eFormatCharArray, // Print characters with no single quotes, used for
// character arrays that can contain non printable
// characters
eFormatAddressInfo, // Describe what an address points to (func + offset with
// file/line, symbol + offset, data, etc)
eFormatHexFloat, // ISO C99 hex float string
eFormatInstruction, // Disassemble an opcode
eFormatVoid, // Do not print this
eFormatComplexInteger, ///< Integer complex type
eFormatCharArray, ///< Print characters with no single quotes, used for
///< character arrays that can contain non printable
///< characters
eFormatAddressInfo, ///< Describe what an address points to (func + offset
///< with file/line, symbol + offset, data, etc)
eFormatHexFloat, ///< ISO C99 hex float string
eFormatInstruction, ///< Disassemble an opcode
eFormatVoid, ///< Do not print this
eFormatUnicode8,
kNumFormats
};
// Description levels for "void GetDescription(Stream *, DescriptionLevel)"
// calls
/// Description levels for "void GetDescription(Stream *, DescriptionLevel)"
/// calls.
enum DescriptionLevel {
eDescriptionLevelBrief = 0,
eDescriptionLevelFull,
@ -207,7 +209,7 @@ enum DescriptionLevel {
kNumDescriptionLevels
};
// Script interpreter types
/// Script interpreter types.
enum ScriptLanguage {
eScriptLanguageNone,
eScriptLanguagePython,
@ -215,21 +217,21 @@ enum ScriptLanguage {
eScriptLanguageUnknown
};
// Register numbering types
/// Register numbering types.
// See RegisterContext::ConvertRegisterKindToRegisterNumber to convert any of
// these to the lldb internal register numbering scheme (eRegisterKindLLDB).
enum RegisterKind {
eRegisterKindEHFrame = 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
eRegisterKindProcessPlugin, // num used by the process plugin - e.g. by the
// remote gdb-protocol stub program
eRegisterKindLLDB, // lldb's internal register numbers
eRegisterKindEHFrame = 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
eRegisterKindProcessPlugin, ///< num used by the process plugin - e.g. by the
///< remote gdb-protocol stub program
eRegisterKindLLDB, ///< lldb's internal register numbers
kNumRegisterKinds
};
// Thread stop reasons
/// Thread stop reasons.
enum StopReason {
eStopReasonInvalid = 0,
eStopReasonNone,
@ -238,13 +240,13 @@ enum StopReason {
eStopReasonWatchpoint,
eStopReasonSignal,
eStopReasonException,
eStopReasonExec, // Program was re-exec'ed
eStopReasonExec, ///< Program was re-exec'ed
eStopReasonPlanComplete,
eStopReasonThreadExiting,
eStopReasonInstrumentation
};
// Command Return Status Types
/// Command Return Status Types.
enum ReturnStatus {
eReturnStatusInvalid,
eReturnStatusSuccessFinishNoResult,
@ -256,7 +258,7 @@ enum ReturnStatus {
eReturnStatusQuit
};
// The results of expression evaluation:
/// The results of expression evaluation.
enum ExpressionResults {
eExpressionCompleted = 0,
eExpressionSetupError,
@ -270,26 +272,26 @@ enum ExpressionResults {
};
enum SearchDepth {
eSearchDepthInvalid = 0,
eSearchDepthTarget,
eSearchDepthModule,
eSearchDepthCompUnit,
eSearchDepthFunction,
eSearchDepthBlock,
eSearchDepthAddress,
kLastSearchDepthKind = eSearchDepthAddress
eSearchDepthInvalid = 0,
eSearchDepthTarget,
eSearchDepthModule,
eSearchDepthCompUnit,
eSearchDepthFunction,
eSearchDepthBlock,
eSearchDepthAddress,
kLastSearchDepthKind = eSearchDepthAddress
};
// Connection Status Types
/// Connection Status Types.
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
eConnectionStatusInterrupted // Interrupted read
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
eConnectionStatusInterrupted ///< Interrupted read
};
enum ErrorType {
@ -303,17 +305,17 @@ enum ErrorType {
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
eValueTypeVariableThreadLocal = 8 // thread local storage variable
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
eValueTypeVariableThreadLocal = 8 ///< thread local storage variable
};
// Token size/granularities for Input Readers
/// Token size/granularities for Input Readers.
enum InputReaderGranularity {
eInputReaderGranularityInvalid = 0,
@ -332,39 +334,37 @@ enum InputReaderGranularity {
/// in this class, and requests that that item be resolved, or
/// indicates that the member did get resolved.
FLAGS_ENUM(SymbolContextItem){
eSymbolContextTarget = (1u << 0), ///< Set when \a target is requested from
/// a query, or was located in query
/// results
eSymbolContextModule = (1u << 1), ///< Set when \a module is requested from
/// a query, or was located in query
/// results
eSymbolContextCompUnit = (1u << 2), ///< Set when \a comp_unit is requested
/// from a query, or was located in
/// query results
eSymbolContextFunction = (1u << 3), ///< Set when \a function is requested
/// from a query, or was located in
/// query results
eSymbolContextBlock = (1u << 4), ///< Set when the deepest \a block is
/// requested from a query, or was located
/// in query results
eSymbolContextLineEntry = (1u << 5), ///< Set when \a line_entry is
/// requested from a query, or was
/// located in query results
eSymbolContextSymbol = (1u << 6), ///< Set when \a symbol is requested from
/// a query, or was located in query
/// results
eSymbolContextEverything = ((eSymbolContextSymbol << 1) -
1u), ///< Indicates to try and lookup everything
/// up during a routine symbol context
/// query.
eSymbolContextVariable = (1u << 7), ///< Set when \a global or static
/// variable is requested from a query,
/// or was located in query results.
///< eSymbolContextVariable is potentially expensive to lookup so it isn't
/// included in
///< eSymbolContextEverything which stops it from being used during frame PC
/// lookups and
///< many other potential address to symbol context lookups.
/// Set when \a target is requested from a query, or was located
/// in query results
eSymbolContextTarget = (1u << 0),
/// Set when \a module is requested from a query, or was located
/// in query results
eSymbolContextModule = (1u << 1),
/// Set when \a comp_unit is requested from a query, or was
/// located in query results
eSymbolContextCompUnit = (1u << 2),
/// Set when \a function is requested from a query, or was located
/// in query results
eSymbolContextFunction = (1u << 3),
/// Set when the deepest \a block is requested from a query, or
/// was located in query results
eSymbolContextBlock = (1u << 4),
/// Set when \a line_entry is requested from a query, or was
/// located in query results
eSymbolContextLineEntry = (1u << 5),
/// Set when \a symbol is requested from a query, or was located
/// in query results
eSymbolContextSymbol = (1u << 6),
/// Indicates to try and lookup everything up during a routine
/// symbol context query.
eSymbolContextEverything = ((eSymbolContextSymbol << 1) - 1u),
/// Set when \a global or static variable is requested from a
/// query, or was located in query results.
/// eSymbolContextVariable is potentially expensive to lookup so
/// it isn't included in eSymbolContextEverything which stops it
/// from being used during frame PC lookups and many other
/// potential address to symbol context lookups.
eSymbolContextVariable = (1u << 7),
};
LLDB_MARK_AS_BITMASK_ENUM(SymbolContextItem)
@ -374,27 +374,28 @@ FLAGS_ENUM(Permissions){ePermissionsWritable = (1u << 0),
LLDB_MARK_AS_BITMASK_ENUM(Permissions)
enum InputReaderAction {
eInputReaderActivate, // reader is newly pushed onto the reader stack
eInputReaderAsynchronousOutputWritten, // an async output event occurred; the
// reader may want to do something
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
eInputReaderActivate, ///< reader is newly pushed onto the reader stack
eInputReaderAsynchronousOutputWritten, ///< an async output event occurred;
///< the reader may want to do
///< something
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
};
FLAGS_ENUM(BreakpointEventType){
eBreakpointEventTypeInvalidType = (1u << 0),
eBreakpointEventTypeAdded = (1u << 1),
eBreakpointEventTypeRemoved = (1u << 2),
eBreakpointEventTypeLocationsAdded = (1u << 3), // Locations added doesn't
// get sent when the
// breakpoint is created
eBreakpointEventTypeLocationsAdded = (1u << 3), ///< Locations added doesn't
///< get sent when the
///< breakpoint is created
eBreakpointEventTypeLocationsRemoved = (1u << 4),
eBreakpointEventTypeLocationsResolved = (1u << 5),
eBreakpointEventTypeEnabled = (1u << 6),
@ -592,7 +593,7 @@ enum CommandArgumentType {
// enumeration!!
};
// Symbol types
/// Symbol types.
// Symbol holds the SymbolType in a 6-bit field (m_type), so if you get over 63
// entries you will have to resize that field.
enum SymbolType {
@ -618,8 +619,8 @@ enum SymbolType {
eSymbolTypeLineHeader,
eSymbolTypeScopeBegin,
eSymbolTypeScopeEnd,
eSymbolTypeAdditional, // When symbols take more than one entry, the extra
// entries get this type
eSymbolTypeAdditional, ///< When symbols take more than one entry, the extra
///< entries get this type
eSymbolTypeCompiler,
eSymbolTypeInstrumentation,
eSymbolTypeUndefined,
@ -632,19 +633,20 @@ enum SymbolType {
enum SectionType {
eSectionTypeInvalid,
eSectionTypeCode,
eSectionTypeContainer, // The section contains child sections
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
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
eSectionTypeDataObjCMessageRefs, ///< Pointer to function pointer + selector
eSectionTypeDataObjCCFStrings, ///< Objective-C const CFString/NSString
///< objects
eSectionTypeDWARFDebugAbbrev,
eSectionTypeDWARFDebugAddr,
eSectionTypeDWARFDebugAranges,
@ -664,25 +666,25 @@ enum SectionType {
eSectionTypeDWARFAppleTypes,
eSectionTypeDWARFAppleNamespaces,
eSectionTypeDWARFAppleObjC,
eSectionTypeELFSymbolTable, // Elf SHT_SYMTAB section
eSectionTypeELFDynamicSymbols, // Elf SHT_DYNSYM section
eSectionTypeELFRelocationEntries, // Elf SHT_REL or SHT_REL section
eSectionTypeELFDynamicLinkInfo, // Elf SHT_DYNAMIC section
eSectionTypeELFSymbolTable, ///< Elf SHT_SYMTAB section
eSectionTypeELFDynamicSymbols, ///< Elf SHT_DYNSYM section
eSectionTypeELFRelocationEntries, ///< Elf SHT_REL or SHT_REL section
eSectionTypeELFDynamicLinkInfo, ///< Elf SHT_DYNAMIC section
eSectionTypeEHFrame,
eSectionTypeARMexidx,
eSectionTypeARMextab,
eSectionTypeCompactUnwind, // compact unwind section in Mach-O,
// __TEXT,__unwind_info
eSectionTypeCompactUnwind, ///< compact unwind section in Mach-O,
///< __TEXT,__unwind_info
eSectionTypeGoSymtab,
eSectionTypeAbsoluteAddress, // Dummy section for symbols with absolute
// address
eSectionTypeAbsoluteAddress, ///< Dummy section for symbols with absolute
///< address
eSectionTypeDWARFGNUDebugAltLink,
eSectionTypeDWARFDebugTypes, // DWARF .debug_types section
eSectionTypeDWARFDebugNames, // DWARF v5 .debug_names
eSectionTypeDWARFDebugTypes, ///< DWARF .debug_types section
eSectionTypeDWARFDebugNames, ///< DWARF v5 .debug_names
eSectionTypeOther,
eSectionTypeDWARFDebugLineStr, // DWARF v5 .debug_line_str
eSectionTypeDWARFDebugRngLists, // DWARF v5 .debug_rnglists
eSectionTypeDWARFDebugLocLists, // DWARF v5 .debug_loclists
eSectionTypeDWARFDebugLineStr, ///< DWARF v5 .debug_line_str
eSectionTypeDWARFDebugRngLists, ///< DWARF v5 .debug_rnglists
eSectionTypeDWARFDebugLocLists, ///< DWARF v5 .debug_loclists
eSectionTypeDWARFDebugAbbrevDwo,
eSectionTypeDWARFDebugInfoDwo,
eSectionTypeDWARFDebugStrDwo,
@ -698,26 +700,27 @@ FLAGS_ENUM(EmulateInstructionOptions){
FLAGS_ENUM(FunctionNameType){
eFunctionNameTypeNone = 0u,
eFunctionNameTypeAuto =
(1u << 1), // Automatically figure out which FunctionNameType
// bits to set based on the function name.
eFunctionNameTypeFull = (1u << 2), // The function name.
// For C this is the same as just the name of the function For C++ this is
// the mangled or demangled version of the mangled name. For ObjC this is
// the full function signature with the + or - and the square brackets and
// the class and selector
eFunctionNameTypeBase = (1u << 3), // The function name only, no namespaces
// or arguments and no class
// methods or selectors will be searched.
eFunctionNameTypeMethod = (1u << 4), // Find function by method name (C++)
// with no namespace or arguments
(1u << 1), ///< Automatically figure out which FunctionNameType
///< bits to set based on the function name.
eFunctionNameTypeFull = (1u << 2), ///< The function name.
///< For C this is the same as just the name of the function For C++ this is
///< the mangled or demangled version of the mangled name. For ObjC this is
///< the full function signature with the + or - and the square brackets and
///< the class and selector
eFunctionNameTypeBase = (1u
<< 3), ///< The function name only, no namespaces
///< or arguments and no class
///< methods or selectors will be searched.
eFunctionNameTypeMethod = (1u << 4), ///< Find function by method name (C++)
///< with no namespace or arguments
eFunctionNameTypeSelector =
(1u << 5), // Find function by selector name (ObjC) names
(1u << 5), ///< Find function by selector name (ObjC) names
eFunctionNameTypeAny =
eFunctionNameTypeAuto // DEPRECATED: use eFunctionNameTypeAuto
eFunctionNameTypeAuto ///< DEPRECATED: use eFunctionNameTypeAuto
};
LLDB_MARK_AS_BITMASK_ENUM(FunctionNameType)
// Basic types enumeration for the public API SBType::GetBasicType()
/// Basic types enumeration for the public API SBType::GetBasicType().
enum BasicType {
eBasicTypeInvalid = 0,
eBasicTypeVoid = 1,
@ -802,8 +805,8 @@ enum TemplateArgumentKind {
eTemplateArgumentKindNullPtr,
};
// Options that can be set for a formatter to alter its behavior Not all of
// these are applicable to all formatter types
/// Options that can be set for a formatter to alter its behavior Not
/// all of these are applicable to all formatter types.
FLAGS_ENUM(TypeOptions){eTypeOptionNone = (0u),
eTypeOptionCascade = (1u << 0),
eTypeOptionSkipPointers = (1u << 1),
@ -814,20 +817,28 @@ FLAGS_ENUM(TypeOptions){eTypeOptionNone = (0u),
eTypeOptionHideNames = (1u << 6),
eTypeOptionNonCacheable = (1u << 7),
eTypeOptionHideEmptyAggregates = (1u << 8),
eTypeOptionFrontEndWantsDereference = (1u << 9)
};
eTypeOptionFrontEndWantsDereference = (1u << 9)};
// This is the return value for frame comparisons. If you are comparing frame
// A to frame B the following cases arise: 1) When frame A pushes frame B (or a
// frame that ends up pushing B) A is Older than B. 2) When frame A pushed
// frame B (or if frame A is on the stack but B is not) A is Younger than B 3)
// When frame A and frame B have the same StackID, they are Equal. 4) When
// frame A and frame B have the same immediate parent frame, but are not equal,
// the comparison yields
// SameParent.
// 5) If the two frames are on different threads or processes the comparison is
// Invalid 6) If for some reason we can't figure out what went on, we return
// Unknown.
/// This is the return value for frame comparisons. If you are comparing frame
/// A to frame B the following cases arise:
///
/// 1) When frame A pushes frame B (or a frame that ends up pushing
/// B) A is Older than B.
///
/// 2) When frame A pushed frame B (or if frameA is on the stack
/// but B is not) A is Younger than B.
///
/// 3) When frame A and frame B have the same StackID, they are
/// Equal.
///
/// 4) When frame A and frame B have the same immediate parent
/// frame, but are not equal, the comparison yields SameParent.
///
/// 5) If the two frames are on different threads or processes the
/// comparison is Invalid.
///
/// 6) If for some reason we can't figure out what went on, we
/// return Unknown.
enum FrameComparison {
eFrameCompareInvalid,
eFrameCompareUnknown,
@ -837,12 +848,13 @@ enum FrameComparison {
eFrameCompareOlder
};
// File Permissions
//
// Designed to mimic the unix file permission bits so they can be used with
// functions that set 'mode_t' to certain values for permissions.
/// File Permissions.
///
/// Designed to mimic the unix file permission bits so they can be used with
/// functions that set 'mode_t' to certain values for permissions.
FLAGS_ENUM(FilePermissions){
eFilePermissionsUserRead = (1u << 8), eFilePermissionsUserWrite = (1u << 7),
eFilePermissionsUserRead = (1u << 8),
eFilePermissionsUserWrite = (1u << 7),
eFilePermissionsUserExecute = (1u << 6),
eFilePermissionsGroupRead = (1u << 5),
eFilePermissionsGroupWrite = (1u << 4),
@ -896,29 +908,32 @@ FLAGS_ENUM(FilePermissions){
eFilePermissionsDirectoryDefault = eFilePermissionsUserRWX,
};
// Queue work item types
//
// The different types of work that can be enqueued on a libdispatch aka Grand
// Central Dispatch (GCD) queue.
/// Queue work item types.
///
/// The different types of work that can be enqueued on a libdispatch aka Grand
/// Central Dispatch (GCD) queue.
enum QueueItemKind {
eQueueItemKindUnknown = 0,
eQueueItemKindFunction,
eQueueItemKindBlock
};
// Queue type
// libdispatch aka Grand Central Dispatch (GCD) queues can be either serial
// (executing on one thread) or concurrent (executing on multiple threads).
/// Queue type.
///
/// libdispatch aka Grand Central Dispatch (GCD) queues can be either
/// serial (executing on one thread) or concurrent (executing on
/// multiple threads).
enum QueueKind {
eQueueKindUnknown = 0,
eQueueKindSerial,
eQueueKindConcurrent
};
// Expression Evaluation Stages
// These are the cancellable stages of expression evaluation, passed to the
// expression evaluation callback, so that you can interrupt expression
// evaluation at the various points in its lifecycle.
/// Expression Evaluation Stages.
///
/// These are the cancellable stages of expression evaluation, passed
/// to the expression evaluation callback, so that you can interrupt
/// expression evaluation at the various points in its lifecycle.
enum ExpressionEvaluationPhase {
eExpressionEvaluationParse = 0,
eExpressionEvaluationIRGen,
@ -926,9 +941,10 @@ enum ExpressionEvaluationPhase {
eExpressionEvaluationComplete
};
// Watchpoint Kind
// Indicates what types of events cause the watchpoint to fire. Used by Native
// *Protocol-related classes.
/// Watchpoint Kind.
///
/// Indicates what types of events cause the watchpoint to fire. Used by Native
/// *Protocol-related classes.
FLAGS_ENUM(WatchpointKind){eWatchpointKindWrite = (1u << 0),
eWatchpointKindRead = (1u << 1)};
@ -941,42 +957,44 @@ enum GdbSignal {
eGdbSignalBreakpoint = 0x96
};
// Used with SBHost::GetPath (lldb::PathType) to find files that are related to
// LLDB on the current host machine. Most files are relative to LLDB or are in
// known locations.
/// Used with SBHost::GetPath (lldb::PathType) to find files that are
/// related to LLDB on the current host machine. Most files are
/// relative to LLDB or are in known locations.
enum PathType {
ePathTypeLLDBShlibDir, // The directory where the lldb.so (unix) or LLDB
// mach-o file in LLDB.framework (MacOSX) exists
ePathTypeSupportExecutableDir, // Find LLDB support executable directory
// (debugserver, etc)
ePathTypeHeaderDir, // Find LLDB header file directory
ePathTypePythonDir, // Find Python modules (PYTHONPATH) directory
ePathTypeLLDBSystemPlugins, // System plug-ins directory
ePathTypeLLDBUserPlugins, // User plug-ins directory
ePathTypeLLDBTempSystemDir, // The LLDB temp directory for this system that
// will be cleaned up on exit
ePathTypeGlobalLLDBTempSystemDir, // The LLDB temp directory for this system,
// NOT cleaned up on a process exit.
ePathTypeClangDir // Find path to Clang builtin headers
ePathTypeLLDBShlibDir, ///< The directory where the lldb.so (unix) or LLDB
///< mach-o file in LLDB.framework (MacOSX) exists
ePathTypeSupportExecutableDir, ///< Find LLDB support executable directory
///< (debugserver, etc)
ePathTypeHeaderDir, ///< Find LLDB header file directory
ePathTypePythonDir, ///< Find Python modules (PYTHONPATH) directory
ePathTypeLLDBSystemPlugins, ///< System plug-ins directory
ePathTypeLLDBUserPlugins, ///< User plug-ins directory
ePathTypeLLDBTempSystemDir, ///< The LLDB temp directory for this system that
///< will be cleaned up on exit
ePathTypeGlobalLLDBTempSystemDir, ///< The LLDB temp directory for this
///< system, NOT cleaned up on a process
///< exit.
ePathTypeClangDir ///< Find path to Clang builtin headers
};
// Kind of member function
// Used by the type system
/// Kind of member function.
///
/// Used by the type system.
enum MemberFunctionKind {
eMemberFunctionKindUnknown = 0, // Not sure what the type of this is
eMemberFunctionKindConstructor, // A function used to create instances
eMemberFunctionKindDestructor, // A function used to tear down existing
// instances
eMemberFunctionKindInstanceMethod, // A function that applies to a specific
// instance
eMemberFunctionKindStaticMethod // A function that applies to a type rather
// than any instance
eMemberFunctionKindUnknown = 0, ///< Not sure what the type of this is
eMemberFunctionKindConstructor, ///< A function used to create instances
eMemberFunctionKindDestructor, ///< A function used to tear down existing
///< instances
eMemberFunctionKindInstanceMethod, ///< A function that applies to a specific
///< instance
eMemberFunctionKindStaticMethod ///< A function that applies to a type rather
///< than any instance
};
// String matching algorithm used by SBTarget
/// String matching algorithm used by SBTarget.
enum MatchType { eMatchTypeNormal, eMatchTypeRegex, eMatchTypeStartsWith };
// Bitmask that describes details about a type
/// Bitmask that describes details about a type.
FLAGS_ENUM(TypeFlags){
eTypeHasChildren = (1u << 0), eTypeHasValue = (1u << 1),
eTypeIsArray = (1u << 2), eTypeIsBlock = (1u << 3),
@ -992,67 +1010,67 @@ FLAGS_ENUM(TypeFlags){
eTypeInstanceIsPointer = (1u << 22)};
FLAGS_ENUM(CommandFlags){
// eCommandRequiresTarget
//
// Ensures a valid target is contained in m_exe_ctx prior to executing the
// command. If a target doesn't exist or is invalid, the command will fail
// and CommandObject::GetInvalidTargetDescription() will be returned as the
// error. CommandObject subclasses can override the virtual function for
// GetInvalidTargetDescription() to provide custom strings when needed.
/// eCommandRequiresTarget
///
/// Ensures a valid target is contained in m_exe_ctx prior to executing the
/// command. If a target doesn't exist or is invalid, the command will fail
/// and CommandObject::GetInvalidTargetDescription() will be returned as the
/// error. CommandObject subclasses can override the virtual function for
/// GetInvalidTargetDescription() to provide custom strings when needed.
eCommandRequiresTarget = (1u << 0),
// eCommandRequiresProcess
//
// Ensures a valid process is contained in m_exe_ctx prior to executing the
// command. If a process doesn't exist or is invalid, the command will fail
// and CommandObject::GetInvalidProcessDescription() will be returned as
// the error. CommandObject subclasses can override the virtual function
// for GetInvalidProcessDescription() to provide custom strings when
// needed.
/// eCommandRequiresProcess
///
/// Ensures a valid process is contained in m_exe_ctx prior to executing the
/// command. If a process doesn't exist or is invalid, the command will fail
/// and CommandObject::GetInvalidProcessDescription() will be returned as
/// the error. CommandObject subclasses can override the virtual function
/// for GetInvalidProcessDescription() to provide custom strings when
/// needed.
eCommandRequiresProcess = (1u << 1),
// eCommandRequiresThread
//
// Ensures a valid thread is contained in m_exe_ctx prior to executing the
// command. If a thread doesn't exist or is invalid, the command will fail
// and CommandObject::GetInvalidThreadDescription() will be returned as the
// error. CommandObject subclasses can override the virtual function for
// GetInvalidThreadDescription() to provide custom strings when needed.
/// eCommandRequiresThread
///
/// Ensures a valid thread is contained in m_exe_ctx prior to executing the
/// command. If a thread doesn't exist or is invalid, the command will fail
/// and CommandObject::GetInvalidThreadDescription() will be returned as the
/// error. CommandObject subclasses can override the virtual function for
/// GetInvalidThreadDescription() to provide custom strings when needed.
eCommandRequiresThread = (1u << 2),
// eCommandRequiresFrame
//
// Ensures a valid frame is contained in m_exe_ctx prior to executing the
// command. If a frame doesn't exist or is invalid, the command will fail
// and CommandObject::GetInvalidFrameDescription() will be returned as the
// error. CommandObject subclasses can override the virtual function for
// GetInvalidFrameDescription() to provide custom strings when needed.
/// eCommandRequiresFrame
///
/// Ensures a valid frame is contained in m_exe_ctx prior to executing the
/// command. If a frame doesn't exist or is invalid, the command will fail
/// and CommandObject::GetInvalidFrameDescription() will be returned as the
/// error. CommandObject subclasses can override the virtual function for
/// GetInvalidFrameDescription() to provide custom strings when needed.
eCommandRequiresFrame = (1u << 3),
// eCommandRequiresRegContext
//
// Ensures a valid register context (from the selected frame if there is a
// frame in m_exe_ctx, or from the selected thread from m_exe_ctx) is
// available from m_exe_ctx prior to executing the command. If a target
// doesn't exist or is invalid, the command will fail and
// CommandObject::GetInvalidRegContextDescription() will be returned as the
// error. CommandObject subclasses can override the virtual function for
// GetInvalidRegContextDescription() to provide custom strings when needed.
/// eCommandRequiresRegContext
///
/// Ensures a valid register context (from the selected frame if there is a
/// frame in m_exe_ctx, or from the selected thread from m_exe_ctx) is
/// available from m_exe_ctx prior to executing the command. If a target
/// doesn't exist or is invalid, the command will fail and
/// CommandObject::GetInvalidRegContextDescription() will be returned as the
/// error. CommandObject subclasses can override the virtual function for
/// GetInvalidRegContextDescription() to provide custom strings when needed.
eCommandRequiresRegContext = (1u << 4),
// eCommandTryTargetAPILock
//
// Attempts to acquire the target lock if a target is selected in the
// command interpreter. If the command object fails to acquire the API
// lock, the command will fail with an appropriate error message.
/// eCommandTryTargetAPILock
///
/// Attempts to acquire the target lock if a target is selected in the
/// command interpreter. If the command object fails to acquire the API
/// lock, the command will fail with an appropriate error message.
eCommandTryTargetAPILock = (1u << 5),
// eCommandProcessMustBeLaunched
//
// Verifies that there is a launched process in m_exe_ctx, if there isn't,
// the command will fail with an appropriate error message.
/// eCommandProcessMustBeLaunched
///
/// Verifies that there is a launched process in m_exe_ctx, if there isn't,
/// the command will fail with an appropriate error message.
eCommandProcessMustBeLaunched = (1u << 6),
// eCommandProcessMustBePaused
//
// Verifies that there is a paused process in m_exe_ctx, if there isn't,
// the command will fail with an appropriate error message.
/// eCommandProcessMustBePaused
///
/// Verifies that there is a paused process in m_exe_ctx, if there isn't,
/// the command will fail with an appropriate error message.
eCommandProcessMustBePaused = (1u << 7)};
// Whether a summary should cap how much data it returns to users or not
/// Whether a summary should cap how much data it returns to users or not.
enum TypeSummaryCapping {
eTypeSummaryCapped = true,
eTypeSummaryUncapped = false