diff options
Diffstat (limited to 'contrib/llvm/tools/lldb/include/lldb/lldb-enumerations.h')
-rw-r--r-- | contrib/llvm/tools/lldb/include/lldb/lldb-enumerations.h | 137 |
1 files changed, 123 insertions, 14 deletions
diff --git a/contrib/llvm/tools/lldb/include/lldb/lldb-enumerations.h b/contrib/llvm/tools/lldb/include/lldb/lldb-enumerations.h index 347e20f..612487f 100644 --- a/contrib/llvm/tools/lldb/include/lldb/lldb-enumerations.h +++ b/contrib/llvm/tools/lldb/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 |