| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116 |
- //===-- lldb-enumerations.h -------------------------------------*- C++ -*-===//
- //
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- //
- //===----------------------------------------------------------------------===//
- #ifndef LLDB_LLDB_ENUMERATIONS_H
- #define LLDB_LLDB_ENUMERATIONS_H
- #include <type_traits>
- #ifndef SWIG
- // Macro to enable bitmask operations on an enum. Without this, Enum | Enum
- // gets promoted to an int, so you have to say Enum a = Enum(eFoo | eBar). If
- // you mark Enum with LLDB_MARK_AS_BITMASK_ENUM(Enum), however, you can simply
- // write Enum a = eFoo | eBar.
- // Unfortunately, swig<3.0 doesn't recognise the constexpr keyword, so remove
- // this entire block, as it is not necessary for swig processing.
- #define LLDB_MARK_AS_BITMASK_ENUM(Enum) \
- constexpr Enum operator|(Enum a, Enum b) { \
- return static_cast<Enum>( \
- static_cast<std::underlying_type<Enum>::type>(a) | \
- static_cast<std::underlying_type<Enum>::type>(b)); \
- } \
- constexpr Enum operator&(Enum a, Enum b) { \
- return static_cast<Enum>( \
- static_cast<std::underlying_type<Enum>::type>(a) & \
- static_cast<std::underlying_type<Enum>::type>(b)); \
- } \
- constexpr Enum operator~(Enum a) { \
- return static_cast<Enum>( \
- ~static_cast<std::underlying_type<Enum>::type>(a)); \
- } \
- inline Enum &operator|=(Enum &a, Enum b) { \
- a = a | b; \
- return a; \
- } \
- inline Enum &operator&=(Enum &a, Enum b) { \
- a = a & b; \
- return a; \
- }
- #else
- #define LLDB_MARK_AS_BITMASK_ENUM(Enum)
- #endif
- #ifndef SWIG
- // With MSVC, the default type of an enum is always signed, even if one of the
- // enumerator values is too large to fit into a signed integer but would
- // otherwise fit into an unsigned integer. As a result of this, all of LLDB's
- // flag-style enumerations that specify something like eValueFoo = 1u << 31
- // result in negative values. This usually just results in a benign warning,
- // but in a few places we actually do comparisons on the enum values, which
- // would cause a real bug. Furthermore, there's no way to silence only this
- // warning, as it's part of -Wmicrosoft which also catches a whole slew of
- // other useful issues.
- //
- // To make matters worse, early versions of SWIG don't recognize the syntax of
- // specifying the underlying type of an enum (and Python doesn't care anyway)
- // so we need a way to specify the underlying type when the enum is being used
- // from C++ code, but just use a regular enum when swig is pre-processing.
- #define FLAGS_ENUM(Name) enum Name : unsigned
- #define FLAGS_ANONYMOUS_ENUM() enum : unsigned
- #else
- #define FLAGS_ENUM(Name) enum Name
- #define FLAGS_ANONYMOUS_ENUM() enum
- #endif
- namespace lldb {
- /// 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
- 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.
- 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.
- kLastStateType = eStateSuspended
- };
- /// Launch Flags.
- FLAGS_ENUM(LaunchFlags){
- eLaunchFlagNone = 0u,
- eLaunchFlagExec = (1u << 0), ///< Exec when launching and turn the calling
- /// 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
- eLaunchFlagDisableASLR =
- (1u << 3), ///< Disable Address Space Layout Randomization
- eLaunchFlagDisableSTDIO =
- (1u << 4), ///< Disable stdio for inferior process (e.g. for a GUI app)
- eLaunchFlagLaunchInTTY =
- (1u << 5), ///< Launch the process in a new TTY if supported by the host
- eLaunchFlagLaunchInShell =
- (1u << 6), ///< Launch the process inside a shell to get shell expansion
- eLaunchFlagLaunchInSeparateProcessGroup =
- (1u << 7), ///< Launch the process in a separate process group
- ///< 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
- ///< if it loses connection with lldb.
- eLaunchFlagShellExpandArguments =
- (1u << 10), ///< Perform shell-style argument expansion
- eLaunchFlagCloseTTYOnExit = (1u << 11), ///< Close the open TTY on exit
- eLaunchFlagInheritTCCFromParent =
- (1u << 12), ///< Don't make the inferior responsible for its own TCC
- ///< permissions but instead inherit them from its parent.
- };
- /// Thread Run Modes.
- enum RunMode { eOnlyThisThread, eAllThreads, eOnlyDuringStepping };
- /// Byte ordering definitions.
- enum ByteOrder {
- eByteOrderInvalid = 0,
- eByteOrderBig = 1,
- eByteOrderPDP = 2,
- eByteOrderLittle = 4
- };
- /// Register encoding definitions.
- enum Encoding {
- eEncodingInvalid = 0,
- eEncodingUint, ///< unsigned integer
- eEncodingSint, ///< signed integer
- eEncodingIEEE754, ///< float
- eEncodingVector ///< vector registers
- };
- /// Display format definitions.
- enum Format {
- eFormatDefault = 0,
- eFormatInvalid = 0,
- eFormatBoolean,
- eFormatBinary,
- eFormatBytes,
- eFormatBytesWithASCII,
- eFormatChar,
- eFormatCharPrintable, ///< Only printable characters, '.' if not printable
- eFormatComplex, ///< Floating point complex type
- eFormatComplexFloat = eFormatComplex,
- eFormatCString, ///< NULL terminated C strings
- eFormatDecimal,
- eFormatEnum,
- eFormatHex,
- eFormatHexUppercase,
- 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,
- eFormatVectorOfFloat16,
- 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
- eFormatUnicode8,
- kNumFormats
- };
- /// Description levels for "void GetDescription(Stream *, DescriptionLevel)"
- /// calls.
- enum DescriptionLevel {
- eDescriptionLevelBrief = 0,
- eDescriptionLevelFull,
- eDescriptionLevelVerbose,
- eDescriptionLevelInitial,
- kNumDescriptionLevels
- };
- /// Script interpreter types.
- enum ScriptLanguage {
- eScriptLanguageNone = 0,
- eScriptLanguagePython,
- eScriptLanguageLua,
- eScriptLanguageUnknown,
- eScriptLanguageDefault = eScriptLanguagePython
- };
- /// 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
- kNumRegisterKinds
- };
- /// Thread stop reasons.
- enum StopReason {
- eStopReasonInvalid = 0,
- eStopReasonNone,
- eStopReasonTrace,
- eStopReasonBreakpoint,
- eStopReasonWatchpoint,
- eStopReasonSignal,
- eStopReasonException,
- eStopReasonExec, ///< Program was re-exec'ed
- eStopReasonPlanComplete,
- eStopReasonThreadExiting,
- eStopReasonInstrumentation,
- eStopReasonProcessorTrace,
- eStopReasonFork,
- eStopReasonVFork,
- eStopReasonVForkDone,
- };
- /// Command Return Status Types.
- enum ReturnStatus {
- eReturnStatusInvalid,
- eReturnStatusSuccessFinishNoResult,
- eReturnStatusSuccessFinishResult,
- eReturnStatusSuccessContinuingNoResult,
- eReturnStatusSuccessContinuingResult,
- eReturnStatusStarted,
- eReturnStatusFailed,
- eReturnStatusQuit
- };
- /// The results of expression evaluation.
- enum ExpressionResults {
- eExpressionCompleted = 0,
- eExpressionSetupError,
- eExpressionParseError,
- eExpressionDiscarded,
- eExpressionInterrupted,
- eExpressionHitBreakpoint,
- eExpressionTimedOut,
- eExpressionResultUnavailable,
- eExpressionStoppedForDebug,
- eExpressionThreadVanished
- };
- enum SearchDepth {
- eSearchDepthInvalid = 0,
- eSearchDepthTarget,
- eSearchDepthModule,
- eSearchDepthCompUnit,
- eSearchDepthFunction,
- eSearchDepthBlock,
- eSearchDepthAddress,
- kLastSearchDepthKind = eSearchDepthAddress
- };
- /// 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
- };
- enum ErrorType {
- eErrorTypeInvalid,
- eErrorTypeGeneric, ///< Generic errors that can be any value.
- eErrorTypeMachKernel, ///< Mach kernel error codes.
- eErrorTypePOSIX, ///< POSIX error codes.
- eErrorTypeExpression, ///< These are from the ExpressionResults enum.
- eErrorTypeWin32 ///< Standard Win32 error codes.
- };
- 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
- };
- /// Token size/granularities for Input Readers.
- enum InputReaderGranularity {
- eInputReaderGranularityInvalid = 0,
- eInputReaderGranularityByte,
- eInputReaderGranularityWord,
- eInputReaderGranularityLine,
- eInputReaderGranularityAll
- };
- /// 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.
- FLAGS_ENUM(SymbolContextItem){
- /// 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)
- FLAGS_ENUM(Permissions){ePermissionsWritable = (1u << 0),
- ePermissionsReadable = (1u << 1),
- ePermissionsExecutable = (1u << 2)};
- 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
- };
- 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
- eBreakpointEventTypeLocationsRemoved = (1u << 4),
- eBreakpointEventTypeLocationsResolved = (1u << 5),
- eBreakpointEventTypeEnabled = (1u << 6),
- eBreakpointEventTypeDisabled = (1u << 7),
- eBreakpointEventTypeCommandChanged = (1u << 8),
- eBreakpointEventTypeConditionChanged = (1u << 9),
- eBreakpointEventTypeIgnoreChanged = (1u << 10),
- eBreakpointEventTypeThreadChanged = (1u << 11),
- eBreakpointEventTypeAutoContinueChanged = (1u << 12)};
- FLAGS_ENUM(WatchpointEventType){
- eWatchpointEventTypeInvalidType = (1u << 0),
- eWatchpointEventTypeAdded = (1u << 1),
- eWatchpointEventTypeRemoved = (1u << 2),
- eWatchpointEventTypeEnabled = (1u << 6),
- eWatchpointEventTypeDisabled = (1u << 7),
- eWatchpointEventTypeCommandChanged = (1u << 8),
- eWatchpointEventTypeConditionChanged = (1u << 9),
- eWatchpointEventTypeIgnoreChanged = (1u << 10),
- eWatchpointEventTypeThreadChanged = (1u << 11),
- eWatchpointEventTypeTypeChanged = (1u << 12)};
- /// Programming language type.
- ///
- /// These enumerations use the same language enumerations as the DWARF
- /// specification for ease of use and consistency.
- /// The enum -> string code is in Language.cpp, don't change this
- /// table without updating that code as well.
- 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.
- // NOTE: The below are DWARF5 constants, subject to change upon
- // completion of the DWARF5 specification
- eLanguageTypeOpenCL = 0x0015, ///< OpenCL.
- eLanguageTypeGo = 0x0016, ///< Go.
- eLanguageTypeModula3 = 0x0017, ///< Modula 3.
- eLanguageTypeHaskell = 0x0018, ///< Haskell.
- eLanguageTypeC_plus_plus_03 = 0x0019, ///< ISO C++:2003.
- eLanguageTypeC_plus_plus_11 = 0x001a, ///< ISO C++:2011.
- eLanguageTypeOCaml = 0x001b, ///< OCaml.
- eLanguageTypeRust = 0x001c, ///< Rust.
- eLanguageTypeC11 = 0x001d, ///< ISO C:2011.
- eLanguageTypeSwift = 0x001e, ///< Swift.
- eLanguageTypeJulia = 0x001f, ///< Julia.
- eLanguageTypeDylan = 0x0020, ///< Dylan.
- eLanguageTypeC_plus_plus_14 = 0x0021, ///< ISO C++:2014.
- eLanguageTypeFortran03 = 0x0022, ///< ISO Fortran 2003.
- eLanguageTypeFortran08 = 0x0023, ///< ISO Fortran 2008.
- // Vendor Extensions
- // Note: Language::GetNameForLanguageType
- // assumes these can be used as indexes into array language_names, and
- // Language::SetLanguageFromCString and Language::AsCString assume these can
- // be used as indexes into array g_languages.
- eLanguageTypeMipsAssembler = 0x0024, ///< Mips_Assembler.
- eLanguageTypeExtRenderScript = 0x0025, ///< RenderScript.
- eNumLanguageTypes
- };
- enum InstrumentationRuntimeType {
- eInstrumentationRuntimeTypeAddressSanitizer = 0x0000,
- eInstrumentationRuntimeTypeThreadSanitizer = 0x0001,
- eInstrumentationRuntimeTypeUndefinedBehaviorSanitizer = 0x0002,
- eInstrumentationRuntimeTypeMainThreadChecker = 0x0003,
- eInstrumentationRuntimeTypeSwiftRuntimeReporting = 0x0004,
- eNumInstrumentationRuntimeTypes
- };
- enum DynamicValueType {
- eNoDynamicValues = 0,
- eDynamicCanRunTarget = 1,
- eDynamicDontRunTarget = 2
- };
- enum StopShowColumn {
- eStopShowColumnAnsiOrCaret = 0,
- eStopShowColumnAnsi = 1,
- eStopShowColumnCaret = 2,
- eStopShowColumnNone = 3
- };
- enum AccessType {
- eAccessNone,
- eAccessPublic,
- eAccessPrivate,
- eAccessProtected,
- eAccessPackage
- };
- enum CommandArgumentType {
- eArgTypeAddress = 0,
- eArgTypeAddressOrExpression,
- eArgTypeAliasName,
- eArgTypeAliasOptions,
- eArgTypeArchitecture,
- eArgTypeBoolean,
- eArgTypeBreakpointID,
- eArgTypeBreakpointIDRange,
- eArgTypeBreakpointName,
- eArgTypeByteSize,
- eArgTypeClassName,
- eArgTypeCommandName,
- eArgTypeCount,
- eArgTypeDescriptionVerbosity,
- eArgTypeDirectoryName,
- eArgTypeDisassemblyFlavor,
- eArgTypeEndAddress,
- eArgTypeExpression,
- eArgTypeExpressionPath,
- eArgTypeExprFormat,
- eArgTypeFileLineColumn,
- eArgTypeFilename,
- eArgTypeFormat,
- eArgTypeFrameIndex,
- eArgTypeFullName,
- eArgTypeFunctionName,
- eArgTypeFunctionOrSymbol,
- eArgTypeGDBFormat,
- eArgTypeHelpText,
- eArgTypeIndex,
- eArgTypeLanguage,
- eArgTypeLineNum,
- eArgTypeLogCategory,
- eArgTypeLogChannel,
- eArgTypeMethod,
- eArgTypeName,
- eArgTypeNewPathPrefix,
- eArgTypeNumLines,
- eArgTypeNumberPerLine,
- eArgTypeOffset,
- eArgTypeOldPathPrefix,
- eArgTypeOneLiner,
- eArgTypePath,
- eArgTypePermissionsNumber,
- eArgTypePermissionsString,
- eArgTypePid,
- eArgTypePlugin,
- eArgTypeProcessName,
- eArgTypePythonClass,
- eArgTypePythonFunction,
- eArgTypePythonScript,
- eArgTypeQueueName,
- eArgTypeRegisterName,
- eArgTypeRegularExpression,
- eArgTypeRunArgs,
- eArgTypeRunMode,
- eArgTypeScriptedCommandSynchronicity,
- eArgTypeScriptLang,
- eArgTypeSearchWord,
- eArgTypeSelector,
- eArgTypeSettingIndex,
- eArgTypeSettingKey,
- eArgTypeSettingPrefix,
- eArgTypeSettingVariableName,
- eArgTypeShlibName,
- eArgTypeSourceFile,
- eArgTypeSortOrder,
- eArgTypeStartAddress,
- eArgTypeSummaryString,
- eArgTypeSymbol,
- eArgTypeThreadID,
- eArgTypeThreadIndex,
- eArgTypeThreadName,
- eArgTypeTypeName,
- eArgTypeUnsignedInteger,
- eArgTypeUnixSignal,
- eArgTypeVarName,
- eArgTypeValue,
- eArgTypeWidth,
- eArgTypeNone,
- eArgTypePlatform,
- eArgTypeWatchpointID,
- eArgTypeWatchpointIDRange,
- eArgTypeWatchType,
- eArgRawInput,
- eArgTypeCommand,
- eArgTypeColumnNum,
- eArgTypeModuleUUID,
- eArgTypeLastArg // Always keep this entry as the last entry in this
- // enumeration!!
- };
- /// 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 {
- eSymbolTypeAny = 0,
- eSymbolTypeInvalid = 0,
- eSymbolTypeAbsolute,
- eSymbolTypeCode,
- eSymbolTypeResolver,
- 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,
- eSymbolTypeObjCClass,
- eSymbolTypeObjCMetaClass,
- eSymbolTypeObjCIVar,
- eSymbolTypeReExported
- };
- 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,
- eSectionTypeDWARFDebugAddr,
- eSectionTypeDWARFDebugAranges,
- eSectionTypeDWARFDebugCuIndex,
- eSectionTypeDWARFDebugFrame,
- eSectionTypeDWARFDebugInfo,
- eSectionTypeDWARFDebugLine,
- eSectionTypeDWARFDebugLoc,
- eSectionTypeDWARFDebugMacInfo,
- eSectionTypeDWARFDebugMacro,
- eSectionTypeDWARFDebugPubNames,
- eSectionTypeDWARFDebugPubTypes,
- eSectionTypeDWARFDebugRanges,
- eSectionTypeDWARFDebugStr,
- eSectionTypeDWARFDebugStrOffsets,
- eSectionTypeDWARFAppleNames,
- 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
- eSectionTypeEHFrame,
- eSectionTypeARMexidx,
- eSectionTypeARMextab,
- eSectionTypeCompactUnwind, ///< compact unwind section in Mach-O,
- ///< __TEXT,__unwind_info
- eSectionTypeGoSymtab,
- eSectionTypeAbsoluteAddress, ///< Dummy section for symbols with absolute
- ///< address
- eSectionTypeDWARFGNUDebugAltLink,
- 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
- eSectionTypeDWARFDebugAbbrevDwo,
- eSectionTypeDWARFDebugInfoDwo,
- eSectionTypeDWARFDebugStrDwo,
- eSectionTypeDWARFDebugStrOffsetsDwo,
- eSectionTypeDWARFDebugTypesDwo,
- eSectionTypeDWARFDebugRngListsDwo,
- eSectionTypeDWARFDebugLocDwo,
- eSectionTypeDWARFDebugLocListsDwo,
- eSectionTypeDWARFDebugTuIndex,
- };
- FLAGS_ENUM(EmulateInstructionOptions){
- eEmulateInstructionOptionNone = (0u),
- eEmulateInstructionOptionAutoAdvancePC = (1u << 0),
- eEmulateInstructionOptionIgnoreConditions = (1u << 1)};
- 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
- eFunctionNameTypeSelector =
- (1u << 5), ///< Find function by selector name (ObjC) names
- eFunctionNameTypeAny =
- eFunctionNameTypeAuto ///< DEPRECATED: use eFunctionNameTypeAuto
- };
- LLDB_MARK_AS_BITMASK_ENUM(FunctionNameType)
- /// Basic types enumeration for the public API SBType::GetBasicType().
- enum BasicType {
- eBasicTypeInvalid = 0,
- eBasicTypeVoid = 1,
- eBasicTypeChar,
- eBasicTypeSignedChar,
- eBasicTypeUnsignedChar,
- eBasicTypeWChar,
- eBasicTypeSignedWChar,
- eBasicTypeUnsignedWChar,
- eBasicTypeChar16,
- eBasicTypeChar32,
- eBasicTypeShort,
- eBasicTypeUnsignedShort,
- eBasicTypeInt,
- eBasicTypeUnsignedInt,
- eBasicTypeLong,
- eBasicTypeUnsignedLong,
- eBasicTypeLongLong,
- eBasicTypeUnsignedLongLong,
- eBasicTypeInt128,
- eBasicTypeUnsignedInt128,
- eBasicTypeBool,
- eBasicTypeHalf,
- eBasicTypeFloat,
- eBasicTypeDouble,
- eBasicTypeLongDouble,
- eBasicTypeFloatComplex,
- eBasicTypeDoubleComplex,
- eBasicTypeLongDoubleComplex,
- eBasicTypeObjCID,
- eBasicTypeObjCClass,
- eBasicTypeObjCSel,
- eBasicTypeNullPtr,
- eBasicTypeOther
- };
- /// Deprecated
- enum TraceType {
- eTraceTypeNone = 0,
- /// Intel Processor Trace
- eTraceTypeProcessorTrace
- };
- enum StructuredDataType {
- eStructuredDataTypeInvalid = -1,
- eStructuredDataTypeNull = 0,
- eStructuredDataTypeGeneric,
- eStructuredDataTypeArray,
- eStructuredDataTypeInteger,
- eStructuredDataTypeFloat,
- eStructuredDataTypeBoolean,
- eStructuredDataTypeString,
- eStructuredDataTypeDictionary
- };
- FLAGS_ENUM(TypeClass){
- eTypeClassInvalid = (0u), eTypeClassArray = (1u << 0),
- eTypeClassBlockPointer = (1u << 1), eTypeClassBuiltin = (1u << 2),
- eTypeClassClass = (1u << 3), eTypeClassComplexFloat = (1u << 4),
- eTypeClassComplexInteger = (1u << 5), eTypeClassEnumeration = (1u << 6),
- eTypeClassFunction = (1u << 7), eTypeClassMemberPointer = (1u << 8),
- eTypeClassObjCObject = (1u << 9), eTypeClassObjCInterface = (1u << 10),
- eTypeClassObjCObjectPointer = (1u << 11), eTypeClassPointer = (1u << 12),
- eTypeClassReference = (1u << 13), eTypeClassStruct = (1u << 14),
- eTypeClassTypedef = (1u << 15), eTypeClassUnion = (1u << 16),
- eTypeClassVector = (1u << 17),
- // Define the last type class as the MSBit of a 32 bit value
- eTypeClassOther = (1u << 31),
- // Define a mask that can be used for any type when finding types
- eTypeClassAny = (0xffffffffu)};
- LLDB_MARK_AS_BITMASK_ENUM(TypeClass)
- enum TemplateArgumentKind {
- eTemplateArgumentKindNull = 0,
- eTemplateArgumentKindType,
- eTemplateArgumentKindDeclaration,
- eTemplateArgumentKindIntegral,
- eTemplateArgumentKindTemplate,
- eTemplateArgumentKindTemplateExpansion,
- eTemplateArgumentKindExpression,
- eTemplateArgumentKindPack,
- eTemplateArgumentKindNullPtr,
- };
- /// 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),
- eTypeOptionSkipReferences = (1u << 2),
- eTypeOptionHideChildren = (1u << 3),
- eTypeOptionHideValue = (1u << 4),
- eTypeOptionShowOneLiner = (1u << 5),
- eTypeOptionHideNames = (1u << 6),
- eTypeOptionNonCacheable = (1u << 7),
- eTypeOptionHideEmptyAggregates = (1u << 8),
- 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 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,
- eFrameCompareEqual,
- eFrameCompareSameParent,
- eFrameCompareYounger,
- 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.
- FLAGS_ENUM(FilePermissions){
- eFilePermissionsUserRead = (1u << 8),
- eFilePermissionsUserWrite = (1u << 7),
- eFilePermissionsUserExecute = (1u << 6),
- eFilePermissionsGroupRead = (1u << 5),
- eFilePermissionsGroupWrite = (1u << 4),
- eFilePermissionsGroupExecute = (1u << 3),
- eFilePermissionsWorldRead = (1u << 2),
- eFilePermissionsWorldWrite = (1u << 1),
- eFilePermissionsWorldExecute = (1u << 0),
- eFilePermissionsUserRW = (eFilePermissionsUserRead |
- eFilePermissionsUserWrite | 0),
- eFileFilePermissionsUserRX = (eFilePermissionsUserRead | 0 |
- eFilePermissionsUserExecute),
- eFilePermissionsUserRWX = (eFilePermissionsUserRead |
- eFilePermissionsUserWrite |
- eFilePermissionsUserExecute),
- eFilePermissionsGroupRW = (eFilePermissionsGroupRead |
- eFilePermissionsGroupWrite | 0),
- eFilePermissionsGroupRX = (eFilePermissionsGroupRead | 0 |
- eFilePermissionsGroupExecute),
- eFilePermissionsGroupRWX = (eFilePermissionsGroupRead |
- eFilePermissionsGroupWrite |
- eFilePermissionsGroupExecute),
- eFilePermissionsWorldRW = (eFilePermissionsWorldRead |
- eFilePermissionsWorldWrite | 0),
- eFilePermissionsWorldRX = (eFilePermissionsWorldRead | 0 |
- eFilePermissionsWorldExecute),
- eFilePermissionsWorldRWX = (eFilePermissionsWorldRead |
- eFilePermissionsWorldWrite |
- eFilePermissionsWorldExecute),
- eFilePermissionsEveryoneR = (eFilePermissionsUserRead |
- eFilePermissionsGroupRead |
- eFilePermissionsWorldRead),
- eFilePermissionsEveryoneW = (eFilePermissionsUserWrite |
- eFilePermissionsGroupWrite |
- eFilePermissionsWorldWrite),
- eFilePermissionsEveryoneX = (eFilePermissionsUserExecute |
- eFilePermissionsGroupExecute |
- eFilePermissionsWorldExecute),
- eFilePermissionsEveryoneRW = (eFilePermissionsEveryoneR |
- eFilePermissionsEveryoneW | 0),
- eFilePermissionsEveryoneRX = (eFilePermissionsEveryoneR | 0 |
- eFilePermissionsEveryoneX),
- eFilePermissionsEveryoneRWX = (eFilePermissionsEveryoneR |
- eFilePermissionsEveryoneW |
- eFilePermissionsEveryoneX),
- eFilePermissionsFileDefault = eFilePermissionsUserRW,
- eFilePermissionsDirectoryDefault = eFilePermissionsUserRWX,
- };
- /// 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).
- 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.
- enum ExpressionEvaluationPhase {
- eExpressionEvaluationParse = 0,
- eExpressionEvaluationIRGen,
- eExpressionEvaluationExecution,
- eExpressionEvaluationComplete
- };
- /// 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)};
- enum GdbSignal {
- eGdbSignalBadAccess = 0x91,
- eGdbSignalBadInstruction = 0x92,
- eGdbSignalArithmetic = 0x93,
- eGdbSignalEmulation = 0x94,
- eGdbSignalSoftware = 0x95,
- eGdbSignalBreakpoint = 0x96
- };
- /// Used with SBHostOS::GetLLDBPath (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
- };
- /// 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
- };
- /// String matching algorithm used by SBTarget.
- enum MatchType { eMatchTypeNormal, eMatchTypeRegex, eMatchTypeStartsWith };
- /// Bitmask that describes details about a type.
- FLAGS_ENUM(TypeFlags){
- eTypeHasChildren = (1u << 0), eTypeHasValue = (1u << 1),
- eTypeIsArray = (1u << 2), eTypeIsBlock = (1u << 3),
- eTypeIsBuiltIn = (1u << 4), eTypeIsClass = (1u << 5),
- eTypeIsCPlusPlus = (1u << 6), eTypeIsEnumeration = (1u << 7),
- eTypeIsFuncPrototype = (1u << 8), eTypeIsMember = (1u << 9),
- eTypeIsObjC = (1u << 10), eTypeIsPointer = (1u << 11),
- eTypeIsReference = (1u << 12), eTypeIsStructUnion = (1u << 13),
- eTypeIsTemplate = (1u << 14), eTypeIsTypedef = (1u << 15),
- eTypeIsVector = (1u << 16), eTypeIsScalar = (1u << 17),
- eTypeIsInteger = (1u << 18), eTypeIsFloat = (1u << 19),
- eTypeIsComplex = (1u << 20), eTypeIsSigned = (1u << 21),
- 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 = (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 = (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 = (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 = (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 = (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 = (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 = (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 = (1u << 7),
- /// eCommandProcessMustBeTraced
- ///
- /// Verifies that the process is being traced by a Trace plug-in, if it
- /// isn't the command will fail with an appropriate error message.
- eCommandProcessMustBeTraced = (1u << 8)};
- /// Whether a summary should cap how much data it returns to users or not.
- enum TypeSummaryCapping {
- eTypeSummaryCapped = true,
- eTypeSummaryUncapped = false
- };
- /// The result from a command interpreter run.
- enum CommandInterpreterResult {
- /// Command interpreter finished successfully.
- eCommandInterpreterResultSuccess,
- /// Stopped because the corresponding option was set and the inferior
- /// crashed.
- eCommandInterpreterResultInferiorCrash,
- /// Stopped because the corresponding option was set and a command returned
- /// an error.
- eCommandInterpreterResultCommandError,
- /// Stopped because quit was requested.
- eCommandInterpreterResultQuitRequested,
- };
- } // namespace lldb
- #endif // LLDB_LLDB_ENUMERATIONS_H
|