aboutsummaryrefslogtreecommitdiff
path: root/include/lldb/lldb-enumerations.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/lldb/lldb-enumerations.h')
-rw-r--r--include/lldb/lldb-enumerations.h137
1 files changed, 123 insertions, 14 deletions
diff --git a/include/lldb/lldb-enumerations.h b/include/lldb/lldb-enumerations.h
index 347e20f21df6..612487fd4fad 100644
--- a/include/lldb/lldb-enumerations.h
+++ b/include/lldb/lldb-enumerations.h
@@ -39,16 +39,18 @@ namespace lldb {
typedef 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
+ 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
- eLaunchFlagsDontMonitorProcess = (1u << 8) ///< If you are going to hand the process off (e.g. to debugserver)
- ///< set this flag so lldb & the handee don't race to reap it.
+ eLaunchFlagDontSetExitStatus = (1u << 8), ///< If you are going to hand the process off (e.g. to debugserver)
+ ///< 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.
} LaunchFlags;
//----------------------------------------------------------------------
@@ -155,13 +157,16 @@ namespace lldb {
//----------------------------------------------------------------------
// Register numbering types
+ // See RegisterContext::ConvertRegisterKindToRegisterNumber to convert
+ // any of these to the lldb internal register numbering scheme
+ // (eRegisterKindLLDB).
//----------------------------------------------------------------------
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?)
+ eRegisterKindGDB, // the register numbers gdb uses (matches stabs numbers)
eRegisterKindLLDB, // lldb's internal register numbers
kNumRegisterKinds
} RegisterKind;
@@ -200,6 +205,22 @@ namespace lldb {
//----------------------------------------------------------------------
+ // The results of expression evaluation:
+ //----------------------------------------------------------------------
+ typedef enum ExpressionResults
+ {
+ eExpressionCompleted = 0,
+ eExpressionSetupError,
+ eExpressionParseError,
+ eExpressionDiscarded,
+ eExpressionInterrupted,
+ eExpressionHitBreakpoint,
+ eExpressionTimedOut,
+ eExpressionResultUnavailable,
+ eExpressionStoppedForDebug
+ } ExpressionResults;
+
+ //----------------------------------------------------------------------
// Connection Status Types
//----------------------------------------------------------------------
typedef enum ConnectionStatus
@@ -209,7 +230,8 @@ namespace lldb {
eConnectionStatusError, // Check GetError() for details
eConnectionStatusTimedOut, // Request timed out
eConnectionStatusNoConnection, // No connection
- eConnectionStatusLostConnection // Lost connection while connected to a valid connection
+ eConnectionStatusLostConnection, // Lost connection while connected to a valid connection
+ eConnectionStatusInterrupted // Interrupted read
} ConnectionStatus;
typedef enum ErrorType
@@ -217,7 +239,9 @@ namespace lldb {
eErrorTypeInvalid,
eErrorTypeGeneric, ///< Generic errors that can be any value.
eErrorTypeMachKernel, ///< Mach kernel error codes.
- eErrorTypePOSIX ///< POSIX error codes.
+ eErrorTypePOSIX, ///< POSIX error codes.
+ eErrorTypeExpression, ///< These are from the ExpressionResults enum.
+ eErrorTypeWin32 ///< Standard Win32 error codes.
} ErrorType;
@@ -349,6 +373,18 @@ namespace lldb {
eLanguageTypeUPC = 0x0012, ///< Unified Parallel C.
eLanguageTypeD = 0x0013, ///< D.
eLanguageTypePython = 0x0014, ///< Python.
+ 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.
eNumLanguageTypes
} LanguageType;
@@ -653,14 +689,22 @@ namespace lldb {
} TypeOptions;
//----------------------------------------------------------------------
- // This is the return value for frame comparisons. When frame A pushes
- // frame B onto the stack, frame A is OLDER than frame B.
+ // 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 comparision yields
+ // SameParent.
+ // 5) If the two frames are on different threads or processes the comparision is Invalid
+ // 6) If for some reason we can't figure out what went on, we return Unknown.
//----------------------------------------------------------------------
typedef enum FrameComparison
{
eFrameCompareInvalid,
eFrameCompareUnknown,
eFrameCompareEqual,
+ eFrameCompareSameParent,
eFrameCompareYounger,
eFrameCompareOlder
} FrameComparison;
@@ -741,6 +785,71 @@ namespace lldb {
eQueueItemKindBlock
} QueueItemKind;
+ //----------------------------------------------------------------------
+ // Queue type
+ // libdispatch aka Grand Central Dispatch (GCD) queues can be either serial
+ // (executing on one thread) or concurrent (executing on multiple threads).
+ //----------------------------------------------------------------------
+ typedef enum QueueKind
+ {
+ eQueueKindUnknown = 0,
+ eQueueKindSerial,
+ eQueueKindConcurrent
+ } QueueKind;
+
+ //----------------------------------------------------------------------
+ // 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.
+ //----------------------------------------------------------------------
+ typedef enum ExpressionEvaluationPhase
+ {
+ eExpressionEvaluationParse = 0,
+ eExpressionEvaluationIRGen,
+ eExpressionEvaluationExecution,
+ eExpressionEvaluationComplete
+ } ExpressionEvaluationPhase;
+
+
+ //----------------------------------------------------------------------
+ // Watchpoint Kind
+ // Indicates what types of events cause the watchpoint to fire.
+ // Used by Native*Protocol-related classes.
+ //----------------------------------------------------------------------
+ typedef enum WatchpointKind
+ {
+ eWatchpointKindRead = (1u << 0),
+ eWatchpointKindWrite = (1u << 1)
+ } WatchpointKind;
+
+ typedef enum GdbSignal
+ {
+ eGdbSignalBadAccess = 0x91,
+ eGdbSignalBadInstruction = 0x92,
+ eGdbSignalArithmetic = 0x93,
+ eGdbSignalEmulation = 0x94,
+ eGdbSignalSoftware = 0x95,
+ eGdbSignalBreakpoint = 0x96
+ } GdbRemoteSignal;
+
+ //----------------------------------------------------------------------
+ // 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.
+ //----------------------------------------------------------------------
+ typedef 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
+
+ } PathType;
+
} // namespace lldb