LLDB mainline
lldb-enumerations.h
Go to the documentation of this file.
1//===-- lldb-enumerations.h -------------------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLDB_LLDB_ENUMERATIONS_H
10#define LLDB_LLDB_ENUMERATIONS_H
11
12#include <cstdint>
13#include <type_traits>
14
15#ifndef SWIG
16// Macro to enable bitmask operations on an enum. Without this, Enum | Enum
17// gets promoted to an int, so you have to say Enum a = Enum(eFoo | eBar). If
18// you mark Enum with LLDB_MARK_AS_BITMASK_ENUM(Enum), however, you can simply
19// write Enum a = eFoo | eBar.
20// Unfortunately, swig<3.0 doesn't recognise the constexpr keyword, so remove
21// this entire block, as it is not necessary for swig processing.
22#define LLDB_MARK_AS_BITMASK_ENUM(Enum) \
23 constexpr Enum operator|(Enum a, Enum b) { \
24 return static_cast<Enum>( \
25 static_cast<std::underlying_type<Enum>::type>(a) | \
26 static_cast<std::underlying_type<Enum>::type>(b)); \
27 } \
28 constexpr Enum operator&(Enum a, Enum b) { \
29 return static_cast<Enum>( \
30 static_cast<std::underlying_type<Enum>::type>(a) & \
31 static_cast<std::underlying_type<Enum>::type>(b)); \
32 } \
33 constexpr Enum operator~(Enum a) { \
34 return static_cast<Enum>( \
35 ~static_cast<std::underlying_type<Enum>::type>(a)); \
36 } \
37 inline Enum &operator|=(Enum &a, Enum b) { \
38 a = a | b; \
39 return a; \
40 } \
41 inline Enum &operator&=(Enum &a, Enum b) { \
42 a = a & b; \
43 return a; \
44 }
45#else
46#define LLDB_MARK_AS_BITMASK_ENUM(Enum)
47#endif
48
49#ifndef SWIG
50// With MSVC, the default type of an enum is always signed, even if one of the
51// enumerator values is too large to fit into a signed integer but would
52// otherwise fit into an unsigned integer. As a result of this, all of LLDB's
53// flag-style enumerations that specify something like eValueFoo = 1u << 31
54// result in negative values. This usually just results in a benign warning,
55// but in a few places we actually do comparisons on the enum values, which
56// would cause a real bug. Furthermore, there's no way to silence only this
57// warning, as it's part of -Wmicrosoft which also catches a whole slew of
58// other useful issues.
59//
60// To make matters worse, early versions of SWIG don't recognize the syntax of
61// specifying the underlying type of an enum (and Python doesn't care anyway)
62// so we need a way to specify the underlying type when the enum is being used
63// from C++ code, but just use a regular enum when swig is pre-processing.
64#define FLAGS_ENUM(Name) enum Name : unsigned
65#define FLAGS_ANONYMOUS_ENUM() enum : unsigned
66#else
67#define FLAGS_ENUM(Name) enum Name
68#define FLAGS_ANONYMOUS_ENUM() enum
69#endif
70
71namespace lldb {
72
73/// Process and Thread States.
76 /// Process is object is valid, but not currently loaded
78 /// Process is connected to remote debug services, but not launched or
79 /// attached to anything yet
81 /// Process is currently trying to attach
83 /// Process is in the process of launching
85 // The state changes eStateAttaching and eStateLaunching are both sent while
86 // the private state thread is either not yet started or paused. For that
87 // reason, they should only be signaled as public state changes, and not
88 // private state changes.
89 /// Process or thread is stopped and can be examined.
91 /// Process or thread is running and can't be examined.
93 /// Process or thread is in the process of stepping and can not be examined.
95 /// Process or thread has crashed and can be examined.
97 /// Process has been detached and can't be examined.
99 /// Process has exited and can't be examined.
101 /// Process or thread is in a suspended state as far as the debugger is
102 /// concerned while other processes or threads get the chance to run.
105};
106
107/// Launch Flags.
108FLAGS_ENUM(LaunchFlags){
109 eLaunchFlagNone = 0u,
110 /// Exec when launching and turn the calling process into a new process.
111 eLaunchFlagExec = (1u << 0),
112 /// Stop as soon as the process launches to allow the process to be
113 /// debugged.
114 eLaunchFlagDebug = (1u << 1),
115 /// Stop at the program entry point instead of auto-continuing when
116 /// launching or attaching at entry point.
117 eLaunchFlagStopAtEntry = (1u << 2),
118 /// Disable Address Space Layout Randomization.
119 eLaunchFlagDisableASLR = (1u << 3),
120 /// Disable stdio for inferior process (e.g. for a GUI app).
121 eLaunchFlagDisableSTDIO = (1u << 4),
122 /// Launch the process in a new TTY if supported by the host.
123 eLaunchFlagLaunchInTTY = (1u << 5),
124 /// Launch the process inside a shell to get shell expansion.
125 eLaunchFlagLaunchInShell = (1u << 6),
126 /// Launch the process in a separate process group. If you are going to hand
127 /// the process off (e.g. to debugserver).
128 eLaunchFlagLaunchInSeparateProcessGroup = (1u << 7),
129 /// Set this flag so lldb & the handee don't race to set its exit status.
130 eLaunchFlagDontSetExitStatus = (1u << 8),
131 /// If set, then the client stub should detach rather than killing the
132 /// debugee if it loses connection with lldb.
133 eLaunchFlagDetachOnError = (1u << 9),
134 /// Perform shell-style argument expansion.
135 eLaunchFlagShellExpandArguments = (1u << 10),
136 /// Close the open TTY on exit.
137 eLaunchFlagCloseTTYOnExit = (1u << 11),
138 /// Don't make the inferior responsible for its own TCC permissions but
139 /// instead inherit them from its parent.
140 eLaunchFlagInheritTCCFromParent = (1u << 12),
141 /// Launch process with memory tagging explicitly enabled.
142 eLaunchFlagMemoryTagging = (1u << 13),
143 /// Use anonymous pipes for stdio instead of a ConPTY on Windows. Useful
144 /// when terminal emulation is not needed (e.g. lldb-dap internalConsole
145 /// mode).
146 eLaunchFlagUsePipes = (1u << 14),
147};
148
149/// Thread Run Modes.
151
152/// Execution directions
154
155// Thread Step Types
158 eStepTypeTrace, ///< Single step one instruction.
159 eStepTypeTraceOver, ///< Single step one instruction, stepping over.
160 eStepTypeInto, ///< Single step into a specified context.
161 eStepTypeOver, ///< Single step over a specified context.
162 eStepTypeOut, ///< Single step out a specified context.
163 eStepTypeScripted ///< A step type implemented by the script interpreter.
164};
165
166/// Byte ordering definitions.
173
174/// Register encoding definitions.
177 /// unsigned integer
179 /// signed integer
181 /// float
183 /// vector registers
185};
186
187/// Display format definitions.
188enum Format {
196 /// Only printable characters, '.' if not printable
198 /// Floating point complex type
201 /// Null-terminated C strings
209 /// OS character codes encoded into an integer 'PICT' 'text' etc...
228 /// Integer complex type
230 /// Print characters with no single quotes, used for character arrays that can
231 /// contain non printable characters
233 /// Describe what an address points to (func + offset with file/line, symbol +
234 /// offset, data, etc)
236 /// ISO C99 hex float string
238 /// Disassemble an opcode
240 /// Do not print this
243 /// Disambiguate between 128-bit `long double` (which uses `eFormatFloat`) and
244 /// `__float128` (which uses `eFormatFloat128`). If the value being formatted
245 /// is not 128 bits, then this is identical to `eFormatFloat`.
248};
249
250/// Description levels for "void GetDescription(Stream *, DescriptionLevel)"
251/// calls.
259
260/// Script interpreter types.
268
269/// Scripting extension types.
288
289/// Register numbering types.
290// See RegisterContext::ConvertRegisterKindToRegisterNumber to convert any of
291// these to the lldb internal register numbering scheme (eRegisterKindLLDB).
293 /// the register numbers seen in eh_frame
295 /// the register numbers seen DWARF
297 /// insn ptr reg, stack ptr reg, etc not specific to any particular target
299 /// num used by the process plugin - e.g. by the remote gdb-protocol stub
300 /// program
302 /// lldb's internal register numbers
305};
306
307/// Thread stop reasons.
331
332/// Command Return Status Types.
343
344/// The results of expression evaluation.
357
368
369/// Connection Status Types.
371 /// Success
373 /// End-of-file encountered
375 /// Check GetError() for details
377 /// Request timed out
379 /// No connection
381 /// Lost connection while connected to a valid connection
383 /// Interrupted read
385};
386
389 /// Generic errors that can be any value.
391 /// Mach kernel error codes.
393 /// POSIX error codes.
395 /// These are from the ExpressionResults enum.
397 /// Standard Win32 error codes.
399};
400
401enum ValueType : uint32_t {
403 /// globals variable
405 /// static variable
407 /// function argument variables
409 /// function local variables
411 /// stack frame register value
413 /// A collection of stack frame register values
415 /// constant result variables
417 /// thread local storage variable
419 /// virtual function table
421 /// function pointer in virtual function table
423
425
426 /// A flag that indicates if the value type is synthetic or not.
427 // NOTE: This limits the number of value types to 31, but that's 3x more than
428 // what we currently have now. See lldb/Utility/ValueType.h for helpers for
429 // working with synthetic value types.
431
433};
434
435/// Token size/granularities for Input Readers.
436
444
445/// These mask bits allow a common interface for queries that can limit the
446/// amount of information that gets parsed to only the information that is
447/// requested. These bits also can indicate what actually did get resolved
448/// during query function calls.
449///
450/// Each definition corresponds to a one of the member variables in this class,
451/// and requests that that item be resolved, or indicates that the member did
452/// get resolved.
453FLAGS_ENUM(SymbolContextItem){
454 /// Set when \a target is requested from a query, or was located in query
455 /// results
456 eSymbolContextTarget = (1u << 0),
457 /// Set when \a module is requested from a query, or was located in query
458 /// results
459 eSymbolContextModule = (1u << 1),
460 /// Set when \a comp_unit is requested from a query, or was located in query
461 /// results
462 eSymbolContextCompUnit = (1u << 2),
463 /// Set when \a function is requested from a query, or was located in query
464 /// results
465 eSymbolContextFunction = (1u << 3),
466 /// Set when the deepest \a block is requested from a query, or was located
467 /// in query results
468 eSymbolContextBlock = (1u << 4),
469 /// Set when \a line_entry is requested from a query, or was located in
470 /// query results
471 eSymbolContextLineEntry = (1u << 5),
472 /// Set when \a symbol is requested from a query, or was located in query
473 /// results
474 eSymbolContextSymbol = (1u << 6),
475 /// Indicates to try and lookup everything up during a routine symbol
476 /// context query.
477 eSymbolContextEverything = ((eSymbolContextSymbol << 1) - 1u),
478 /// Set when \a global or static variable is requested from a query, or was
479 /// located in query results. eSymbolContextVariable is potentially
480 /// expensive to lookup so it isn't included in eSymbolContextEverything
481 /// which stops it from being used during frame PC lookups and many other
482 /// potential address to symbol context lookups.
483 eSymbolContextVariable = (1u << 7),
484
485 // Keep this last and up-to-date for what the last enum value is.
486 eSymbolContextLastItem = eSymbolContextVariable,
487};
488LLDB_MARK_AS_BITMASK_ENUM(SymbolContextItem)
489
490FLAGS_ENUM(Permissions){ePermissionsWritable = (1u << 0),
491 ePermissionsReadable = (1u << 1),
492 ePermissionsExecutable = (1u << 2)};
493LLDB_MARK_AS_BITMASK_ENUM(Permissions)
494
496 /// reader is newly pushed onto the reader stack
498 /// an async output event occurred; the reader may want to do something
500 /// reader is on top of the stack again after another reader was popped off
502 /// another reader was pushed on the stack
504 /// reader got one of its tokens (granularity)
506 /// reader received an interrupt signal (probably from a control-c)
508 /// reader received an EOF char (probably from a control-d)
510 /// reader was just popped off the stack and is done
512};
513
514FLAGS_ENUM(BreakpointEventType){
515 eBreakpointEventTypeInvalidType = (1u << 0),
516 eBreakpointEventTypeAdded = (1u << 1),
517 eBreakpointEventTypeRemoved = (1u << 2),
518 /// Locations added doesn't get sent when the breakpoint is created
519 eBreakpointEventTypeLocationsAdded = (1u << 3),
520 eBreakpointEventTypeLocationsRemoved = (1u << 4),
521 eBreakpointEventTypeLocationsResolved = (1u << 5),
522 eBreakpointEventTypeEnabled = (1u << 6),
523 eBreakpointEventTypeDisabled = (1u << 7),
524 eBreakpointEventTypeCommandChanged = (1u << 8),
525 eBreakpointEventTypeConditionChanged = (1u << 9),
526 eBreakpointEventTypeIgnoreChanged = (1u << 10),
527 eBreakpointEventTypeThreadChanged = (1u << 11),
528 eBreakpointEventTypeAutoContinueChanged = (1u << 12)};
529
530FLAGS_ENUM(WatchpointEventType){
531 eWatchpointEventTypeInvalidType = (1u << 0),
532 eWatchpointEventTypeAdded = (1u << 1),
533 eWatchpointEventTypeRemoved = (1u << 2),
534 eWatchpointEventTypeEnabled = (1u << 6),
535 eWatchpointEventTypeDisabled = (1u << 7),
536 eWatchpointEventTypeCommandChanged = (1u << 8),
537 eWatchpointEventTypeConditionChanged = (1u << 9),
538 eWatchpointEventTypeIgnoreChanged = (1u << 10),
539 eWatchpointEventTypeThreadChanged = (1u << 11),
540 eWatchpointEventTypeTypeChanged = (1u << 12)};
541
543 /// Don't stop when the watched memory region is written to.
545 /// Stop on any write access to the memory region, even if the value doesn't
546 /// change. On some architectures, a write near the memory region may be
547 /// falsely reported as a match, and notify this spurious stop as a watchpoint
548 /// trap.
550 /// Stop on a write to the memory region that changes its value. This is most
551 /// likely the behavior a user expects, and is the behavior in gdb. lldb can
552 /// silently ignore writes near the watched memory region that are reported as
553 /// accesses to lldb.
555};
556
557/// Programming language type.
558///
559/// These enumerations use the same language enumerations as the DWARF
560/// specification for ease of use and consistency. The enum -> string code is in
561/// Language.cpp, don't change this table without updating that code as well.
562///
563/// This datatype is used in SBExpressionOptions::SetLanguage() which makes this
564/// type API. Do not change its underlying storage type!
566 /// Unknown or invalid language value.
568 /// ISO C:1989.
570 /// Non-standardized C, such as K&R.
572 /// ISO Ada:1983.
574 /// ISO C++:1998.
576 /// ISO Cobol:1974.
578 /// ISO Cobol:1985.
580 /// ISO Fortran 77.
582 /// ISO Fortran 90.
584 /// ISO Pascal:1983.
586 /// ISO Modula-2:1996.
588 /// Java.
590 /// ISO C:1999.
592 /// ISO Ada:1995.
594 /// ISO Fortran 95.
596 /// ANSI PL/I:1976.
598 /// Objective-C.
600 /// Objective-C++.
602 /// Unified Parallel C.
604 /// D.
606 /// Python.
608 // NOTE: The below are DWARF5 constants, subject to change upon
609 // completion of the DWARF5 specification
610 /// OpenCL.
612 /// Go.
614 /// Modula 3.
616 /// Haskell.
618 /// ISO C++:2003.
620 /// ISO C++:2011.
622 /// OCaml.
624 /// Rust.
626 /// ISO C:2011.
628 /// Swift.
630 /// Julia.
632 /// Dylan.
634 /// ISO C++:2014.
636 /// ISO Fortran 2003.
638 /// ISO Fortran 2008.
645 /// ISO C++:2017.
647 /// ISO C++:2020.
658
659 // Vendor Extensions
660 // Note: Language::GetNameForLanguageType
661 // assumes these can be used as indexes into array language_names, and
662 // Language::SetLanguageFromCString and Language::AsCString assume these can
663 // be used as indexes into array g_languages.
664 /// Mips_Assembler.
667};
668
680
686
692
699
707
819 eArgTypeLastArg // Always keep this entry as the last entry in this
820 // enumeration!!
821};
822
823/// Symbol types.
824// Symbol holds the SymbolType in a 6-bit field (m_type), so if you get over 63
825// entries you will have to resize that field.
859
863 /// The section contains child sections
866 /// Inlined C string data
868 /// Pointers to C string data
870 /// Address of a symbol in the symbol table
878 /// Pointer to function pointer + selector
880 /// Objective-C const CFString/NSString objects
901 /// Elf SHT_SYMTAB section
903 /// Elf SHT_DYNSYM section
905 /// Elf SHT_REL or SHT_REL section
907 /// Elf SHT_DYNAMIC section
912 /// compact unwind section in Mach-O, __TEXT,__unwind_info
915 /// Dummy section for symbols with absolute address
918 /// DWARF .debug_types section
920 /// DWARF v5 .debug_names
923 /// DWARF v5 .debug_line_str
925 /// DWARF v5 .debug_rnglists
927 /// DWARF v5 .debug_loclists
944};
945
946FLAGS_ENUM(EmulateInstructionOptions){
947 eEmulateInstructionOptionNone = (0u),
948 eEmulateInstructionOptionAutoAdvancePC = (1u << 0),
949 eEmulateInstructionOptionIgnoreConditions = (1u << 1)};
950
951FLAGS_ENUM(FunctionNameType){
952 eFunctionNameTypeNone = 0u,
953 /// Automatically figure out which FunctionNameType bits to set based on the
954 /// function name.
955 eFunctionNameTypeAuto = (1u << 1),
956 /// The function name. For C this is the same as just the name of the
957 /// function. For C++ this is the mangled or demangled version of the
958 /// mangled name. For ObjC this is the full function signature with the + or
959 /// - and the square brackets and the class and selector.
960 eFunctionNameTypeFull = (1u << 2),
961 /// The function name only, no namespaces or arguments and no class methods
962 /// or selectors will be searched.
963 eFunctionNameTypeBase = (1u << 3),
964 /// Find function by method name (C++) with no namespace or arguments.
965 eFunctionNameTypeMethod = (1u << 4),
966 /// Find function by selector name (ObjC) names.
967 eFunctionNameTypeSelector = (1u << 5),
968 /// DEPRECATED: use eFunctionNameTypeAuto.
969 eFunctionNameTypeAny = eFunctionNameTypeAuto};
970LLDB_MARK_AS_BITMASK_ENUM(FunctionNameType)
971
972/// Basic types enumeration for the public API SBType::GetBasicType().
1010
1011/// Deprecated
1014
1015 /// Intel Processor Trace
1017};
1018
1032
1033FLAGS_ENUM(TypeClass){
1034 eTypeClassInvalid = (0u), eTypeClassArray = (1u << 0),
1035 eTypeClassBlockPointer = (1u << 1), eTypeClassBuiltin = (1u << 2),
1036 eTypeClassClass = (1u << 3), eTypeClassComplexFloat = (1u << 4),
1037 eTypeClassComplexInteger = (1u << 5), eTypeClassEnumeration = (1u << 6),
1038 eTypeClassFunction = (1u << 7), eTypeClassMemberPointer = (1u << 8),
1039 eTypeClassObjCObject = (1u << 9), eTypeClassObjCInterface = (1u << 10),
1040 eTypeClassObjCObjectPointer = (1u << 11), eTypeClassPointer = (1u << 12),
1041 eTypeClassReference = (1u << 13), eTypeClassStruct = (1u << 14),
1042 eTypeClassTypedef = (1u << 15), eTypeClassUnion = (1u << 16),
1043 eTypeClassVector = (1u << 17),
1044 // Define the last type class as the MSBit of a 32 bit value
1045 eTypeClassOther = (1u << 31),
1046 // Define a mask that can be used for any type when finding types
1047 eTypeClassAny = (0xffffffffu)};
1049
1062
1063/// Type of match to be performed when looking for a formatter for a data type.
1064/// Used by classes like SBTypeNameSpecifier or lldb_private::TypeMatcher.
1072
1073/// Options that can be set for a formatter to alter its behavior. Not all of
1074/// these are applicable to all formatter types.
1075FLAGS_ENUM(TypeOptions){eTypeOptionNone = (0u),
1076 eTypeOptionCascade = (1u << 0),
1077 eTypeOptionSkipPointers = (1u << 1),
1078 eTypeOptionSkipReferences = (1u << 2),
1079 eTypeOptionHideChildren = (1u << 3),
1080 eTypeOptionHideValue = (1u << 4),
1081 eTypeOptionShowOneLiner = (1u << 5),
1082 eTypeOptionHideNames = (1u << 6),
1083 eTypeOptionNonCacheable = (1u << 7),
1084 eTypeOptionHideEmptyAggregates = (1u << 8),
1085 eTypeOptionFrontEndWantsDereference = (1u << 9),
1086 eTypeOptionCustomSubscripting = (1u << 10)};
1087
1088/// This is the return value for frame comparisons. If you are comparing frame A
1089/// to frame B the following cases arise:
1090///
1091/// 1) When frame A pushes frame B (or a frame that ends up pushing B) A is
1092/// Older than B.
1093///
1094/// 2) When frame A pushed frame B (or if frameA is on the stack but B is
1095/// not) A is Younger than B.
1096///
1097/// 3) When frame A and frame B have the same StackID, they are Equal.
1098///
1099/// 4) When frame A and frame B have the same immediate parent frame, but are
1100/// not equal, the comparison yields SameParent.
1101///
1102/// 5) If the two frames are on different threads or processes the comparison
1103/// is Invalid.
1104///
1105/// 6) If for some reason we can't figure out what went on, we return Unknown.
1114
1115/// File Permissions.
1116///
1117/// Designed to mimic the unix file permission bits so they can be used with
1118/// functions that set 'mode_t' to certain values for permissions.
1119FLAGS_ENUM(FilePermissions){
1120 eFilePermissionsUserRead = (1u << 8),
1121 eFilePermissionsUserWrite = (1u << 7),
1122 eFilePermissionsUserExecute = (1u << 6),
1123 eFilePermissionsGroupRead = (1u << 5),
1124 eFilePermissionsGroupWrite = (1u << 4),
1125 eFilePermissionsGroupExecute = (1u << 3),
1126 eFilePermissionsWorldRead = (1u << 2),
1127 eFilePermissionsWorldWrite = (1u << 1),
1128 eFilePermissionsWorldExecute = (1u << 0),
1129
1130 eFilePermissionsUserRW = (eFilePermissionsUserRead |
1131 eFilePermissionsUserWrite | 0),
1132 eFileFilePermissionsUserRX = (eFilePermissionsUserRead | 0 |
1133 eFilePermissionsUserExecute),
1134 eFilePermissionsUserRWX = (eFilePermissionsUserRead |
1135 eFilePermissionsUserWrite |
1136 eFilePermissionsUserExecute),
1137
1138 eFilePermissionsGroupRW = (eFilePermissionsGroupRead |
1139 eFilePermissionsGroupWrite | 0),
1140 eFilePermissionsGroupRX = (eFilePermissionsGroupRead | 0 |
1141 eFilePermissionsGroupExecute),
1142 eFilePermissionsGroupRWX = (eFilePermissionsGroupRead |
1143 eFilePermissionsGroupWrite |
1144 eFilePermissionsGroupExecute),
1145
1146 eFilePermissionsWorldRW = (eFilePermissionsWorldRead |
1147 eFilePermissionsWorldWrite | 0),
1148 eFilePermissionsWorldRX = (eFilePermissionsWorldRead | 0 |
1149 eFilePermissionsWorldExecute),
1150 eFilePermissionsWorldRWX = (eFilePermissionsWorldRead |
1151 eFilePermissionsWorldWrite |
1152 eFilePermissionsWorldExecute),
1153
1154 eFilePermissionsEveryoneR = (eFilePermissionsUserRead |
1155 eFilePermissionsGroupRead |
1156 eFilePermissionsWorldRead),
1157 eFilePermissionsEveryoneW = (eFilePermissionsUserWrite |
1158 eFilePermissionsGroupWrite |
1159 eFilePermissionsWorldWrite),
1160 eFilePermissionsEveryoneX = (eFilePermissionsUserExecute |
1161 eFilePermissionsGroupExecute |
1162 eFilePermissionsWorldExecute),
1163
1164 eFilePermissionsEveryoneRW = (eFilePermissionsEveryoneR |
1165 eFilePermissionsEveryoneW | 0),
1166 eFilePermissionsEveryoneRX = (eFilePermissionsEveryoneR | 0 |
1167 eFilePermissionsEveryoneX),
1168 eFilePermissionsEveryoneRWX = (eFilePermissionsEveryoneR |
1169 eFilePermissionsEveryoneW |
1170 eFilePermissionsEveryoneX),
1171 eFilePermissionsFileDefault = eFilePermissionsUserRW,
1172 eFilePermissionsDirectoryDefault = eFilePermissionsUserRWX,
1173};
1174
1175/// Queue work item types.
1176///
1177/// The different types of work that can be enqueued on a libdispatch aka Grand
1178/// Central Dispatch (GCD) queue.
1184
1185/// Queue type.
1186///
1187/// libdispatch aka Grand Central Dispatch (GCD) queues can be either serial
1188/// (executing on one thread) or concurrent (executing on multiple threads).
1194
1195/// Expression Evaluation Stages.
1196///
1197/// These are the cancellable stages of expression evaluation, passed to the
1198/// expression evaluation callback, so that you can interrupt expression
1199/// evaluation at the various points in its lifecycle.
1206
1207/// Architecture-agnostic categorization of instructions for traversing the
1208/// control flow of a trace.
1209///
1210/// A single instruction can match one or more of these categories.
1212 /// The instruction could not be classified.
1214 /// The instruction is something not listed below, i.e. it's a sequential
1215 /// instruction that doesn't affect the control flow of the program.
1217 /// The instruction is a near (function) call.
1219 /// The instruction is a near (function) return.
1221 /// The instruction is a near unconditional jump.
1223 /// The instruction is a near conditional jump.
1225 /// The instruction is a call-like far transfer. E.g. SYSCALL, SYSENTER, or
1226 /// FAR CALL.
1228 /// The instruction is a return-like far transfer. E.g. SYSRET, SYSEXIT, IRET,
1229 /// or FAR RET.
1231 /// The instruction is a jump-like far transfer. E.g. FAR JMP.
1233};
1234
1235/// Watchpoint Kind.
1236///
1237/// Indicates what types of events cause the watchpoint to fire. Used by Native
1238/// *Protocol-related classes.
1239FLAGS_ENUM(WatchpointKind){eWatchpointKindWrite = (1u << 0),
1240 eWatchpointKindRead = (1u << 1)};
1241
1250
1251/// Used with SBHostOS::GetLLDBPath (lldb::PathType) to find files that are
1252/// related to LLDB on the current host machine. Most files are relative to LLDB
1253/// or are in known locations.
1255 /// The directory where the lldb.so (unix) or LLDB mach-o file in
1256 /// LLDB.framework (MacOSX) exists
1258 /// Find LLDB support executable directory (debugserver, etc)
1260 /// Find LLDB header file directory
1262 /// Find Python modules (PYTHONPATH) directory
1264 /// System plug-ins directory
1266 /// User plug-ins directory
1268 /// The LLDB temp directory for this system that will be cleaned up on exit
1270 /// The LLDB temp directory for this system, NOT cleaned up on a process exit.
1272 /// Find path to Clang builtin headers
1274};
1275
1276/// Kind of member function.
1277///
1278/// Used by the type system.
1280 /// Not sure what the type of this is
1282 /// A function used to create instances
1284 /// A function used to tear down existing instances
1286 /// A function that applies to a specific instance
1288 /// A function that applies to a type rather than any instance
1290};
1291
1292/// String matching algorithm used by SBTarget.
1299
1300/// Bitmask that describes details about a type.
1301FLAGS_ENUM(TypeFlags){
1302 eTypeHasChildren = (1u << 0), eTypeHasValue = (1u << 1),
1303 eTypeIsArray = (1u << 2), eTypeIsBlock = (1u << 3),
1304 eTypeIsBuiltIn = (1u << 4), eTypeIsClass = (1u << 5),
1305 eTypeIsCPlusPlus = (1u << 6), eTypeIsEnumeration = (1u << 7),
1306 eTypeIsFuncPrototype = (1u << 8), eTypeIsMember = (1u << 9),
1307 eTypeIsObjC = (1u << 10), eTypeIsPointer = (1u << 11),
1308 eTypeIsReference = (1u << 12), eTypeIsStructUnion = (1u << 13),
1309 eTypeIsTemplate = (1u << 14), eTypeIsTypedef = (1u << 15),
1310 eTypeIsVector = (1u << 16), eTypeIsScalar = (1u << 17),
1311 eTypeIsInteger = (1u << 18), eTypeIsFloat = (1u << 19),
1312 eTypeIsComplex = (1u << 20), eTypeIsSigned = (1u << 21),
1313 eTypeInstanceIsPointer = (1u << 22)};
1314
1315FLAGS_ENUM(CommandFlags){
1316 /// eCommandRequiresTarget
1317 ///
1318 /// Ensures a valid target is contained in m_exe_ctx prior to executing the
1319 /// command. If a target doesn't exist or is invalid, the command will fail
1320 /// and CommandObject::GetInvalidTargetDescription() will be returned as the
1321 /// error. CommandObject subclasses can override the virtual function for
1322 /// GetInvalidTargetDescription() to provide custom strings when needed.
1323 eCommandRequiresTarget = (1u << 0),
1324 /// eCommandRequiresProcess
1325 ///
1326 /// Ensures a valid process is contained in m_exe_ctx prior to executing the
1327 /// command. If a process doesn't exist or is invalid, the command will fail
1328 /// and CommandObject::GetInvalidProcessDescription() will be returned as
1329 /// the error. CommandObject subclasses can override the virtual function
1330 /// for GetInvalidProcessDescription() to provide custom strings when
1331 /// needed.
1332 eCommandRequiresProcess = (1u << 1),
1333 /// eCommandRequiresThread
1334 ///
1335 /// Ensures a valid thread is contained in m_exe_ctx prior to executing the
1336 /// command. If a thread doesn't exist or is invalid, the command will fail
1337 /// and CommandObject::GetInvalidThreadDescription() will be returned as the
1338 /// error. CommandObject subclasses can override the virtual function for
1339 /// GetInvalidThreadDescription() to provide custom strings when needed.
1340 eCommandRequiresThread = (1u << 2),
1341 /// eCommandRequiresFrame
1342 ///
1343 /// Ensures a valid frame is contained in m_exe_ctx prior to executing the
1344 /// command. If a frame doesn't exist or is invalid, the command will fail
1345 /// and CommandObject::GetInvalidFrameDescription() will be returned as the
1346 /// error. CommandObject subclasses can override the virtual function for
1347 /// GetInvalidFrameDescription() to provide custom strings when needed.
1348 eCommandRequiresFrame = (1u << 3),
1349 /// eCommandRequiresRegContext
1350 ///
1351 /// Ensures a valid register context (from the selected frame if there is a
1352 /// frame in m_exe_ctx, or from the selected thread from m_exe_ctx) is
1353 /// available from m_exe_ctx prior to executing the command. If a target
1354 /// doesn't exist or is invalid, the command will fail and
1355 /// CommandObject::GetInvalidRegContextDescription() will be returned as the
1356 /// error. CommandObject subclasses can override the virtual function for
1357 /// GetInvalidRegContextDescription() to provide custom strings when needed.
1358 eCommandRequiresRegContext = (1u << 4),
1359 /// eCommandTryTargetAPILock
1360 ///
1361 /// Attempts to acquire the target lock if a target is selected in the
1362 /// command interpreter. If the command object fails to acquire the API
1363 /// lock, the command will fail with an appropriate error message.
1364 eCommandTryTargetAPILock = (1u << 5),
1365 /// eCommandProcessMustBeLaunched
1366 ///
1367 /// Verifies that there is a launched process in m_exe_ctx, if there isn't,
1368 /// the command will fail with an appropriate error message.
1369 eCommandProcessMustBeLaunched = (1u << 6),
1370 /// eCommandProcessMustBePaused
1371 ///
1372 /// Verifies that there is a paused process in m_exe_ctx, if there isn't,
1373 /// the command will fail with an appropriate error message.
1374 eCommandProcessMustBePaused = (1u << 7),
1375 /// eCommandProcessMustBeTraced
1376 ///
1377 /// Verifies that the process is being traced by a Trace plug-in, if it
1378 /// isn't the command will fail with an appropriate error message.
1379 eCommandProcessMustBeTraced = (1u << 8),
1380 /// eCommandAllowsDummyTarget
1381 ///
1382 /// Indicates that the command can legitimately operate on the dummy target
1383 /// (e.g. `breakpoint set` priming future targets). Without this flag,
1384 /// CommandObject::GetTarget filters the dummy target out and returns null
1385 /// when no real target is selected.
1386 eCommandAllowsDummyTarget = (1u << 9)};
1387
1388/// Whether a summary should cap how much data it returns to users or not.
1393
1394/// The result from a command interpreter run.
1396 /// Command interpreter finished successfully.
1398 /// Stopped because the corresponding option was set and the inferior crashed.
1400 /// Stopped because the corresponding option was set and a command returned an
1401 /// error.
1403 /// Stopped because quit was requested.
1405};
1406
1407// Style of core file to create when calling SaveCore.
1415
1416/// Events that might happen during a trace session.
1418 /// Tracing was disabled for some time due to a software trigger.
1420 /// Tracing was disable for some time due to a hardware trigger.
1422 /// Event due to CPU change for a thread. This event is also fired when
1423 /// suddenly it's not possible to identify the cpu of a given thread.
1425 /// Event due to a CPU HW clock tick.
1427 /// The underlying tracing technology emitted a synchronization event used by
1428 /// trace processors.
1430};
1431
1432// Enum used to identify which kind of item a \a TraceCursor is pointing at
1438
1439/// Enum to indicate the reference point when invoking \a TraceCursor::Seek().
1440/// The following values are inspired by \a std::istream::seekg.
1442 /// The beginning of the trace, i.e the oldest item.
1444 /// The current position in the trace.
1446 /// The end of the trace, i.e the most recent item.
1448};
1449
1450/// Enum to control the verbosity level of `dwim-print` execution.
1452 /// Run `dwim-print` with no verbosity.
1454 /// Print a message when `dwim-print` uses `expression` evaluation.
1456 /// Always print a message indicating how `dwim-print` is evaluating its
1457 /// expression.
1459};
1460
1463 /// Watchpoint was created watching a variable
1465 /// Watchpoint was created watching the result of an expression that was
1466 /// evaluated at creation time.
1468};
1469
1475 eSymbolCompletion = (1ul << 3),
1476 eModuleCompletion = (1ul << 4),
1497 eCustomCompletion = (1ul << 25),
1498 eThreadIDCompletion = (1ul << 26),
1501 // This last enum element is just for input validation.
1502 // Add new completions before this element,
1503 // and then increment eTerminatorCompletion's shift value
1505};
1506
1507/// Specifies if children need to be re-computed after a call to \ref
1508/// SyntheticChildrenFrontEnd::Update.
1510 /// Children need to be recomputed dynamically.
1512
1513 /// Children did not change and don't need to be recomputed; re-use what we
1514 /// computed the last time we called Update.
1516};
1517
1523
1530
1531/// Used in the SBProcess AddressMask/FixAddress methods.
1538
1539/// Used in the SBProcess AddressMask/FixAddress methods.
1546
1547/// Used by the debugger to indicate which events are being broadcasted.
1559
1560/// Used for expressing severity in logs and diagnostics.
1564 eSeverityInfo, // Equivalent to Remark used in clang.
1565};
1566
1567/// Callback return value, indicating whether it handled printing the
1568/// CommandReturnObject or deferred doing so to the CommandInterpreter.
1570 /// The callback deferred printing the command return object.
1572 /// The callback handled printing the command return object.
1574};
1575
1576/// Used to determine when to show disassembly.
1583
1590
1592 eNameMatchStyleAuto = eFunctionNameTypeAuto,
1593 eNameMatchStyleFull = eFunctionNameTypeFull,
1594 eNameMatchStyleBase = eFunctionNameTypeBase,
1595 eNameMatchStyleMethod = eFunctionNameTypeMethod,
1596 eNameMatchStyleSelector = eFunctionNameTypeSelector,
1597 eNameMatchStyleRegex = eFunctionNameTypeSelector << 1
1598};
1599
1600/// Data Inspection Language (DIL) evaluation modes. DIL will only attempt
1601/// evaluating expressions that contain tokens allowed by a selected mode.
1603 /// Allowed: identifiers, operators: '.'.
1605 /// Allowed: identifiers, integers, operators: '.', '->', '*', '&', '[]'.
1607 /// Allowed: everything supported by DIL. \see lldb/docs/dil-expr-lang.ebnf
1609};
1610
1611/// When the Process plugin can retrieve information about all binaries loaded
1612/// in the target process, or given a list of binary load addresses, this enum
1613/// specifies how much information needed from the Process plugin; there may be
1614/// performance reasons to limit the amount of information returned.
1621
1622/// This reflects the BreakpointResolver::ResolverTy, but this is a convenient
1623/// enum for making a mask to pass to RegisterOverrideResolver. It has to be
1624/// kept in sync with the ResolverTy.
1625FLAGS_ENUM(BreakpointResolverType){
1626 eResolverUnknown = 0, eResolverFileAndLine = (1 << 0),
1627 eResolverAddress = (1 << 1), eResolverName = (1 << 2),
1628 eResolverFileRegex = (1 << 3), eResolverPython = (1 << 4),
1629 eResolverException = (1 << 5), eResolverLastKnown = eResolverException,
1630};
1632 eResolverFileAndLine | eResolverAddress | eResolverName |
1633 eResolverFileRegex | eResolverPython | eResolverException;
1634
1635/// Modes for evaluating breakpoint conditions.
1637 /// Use Data Inspection Language (DIL) to evaluate the condition.
1639 /// Use UserExpression to evaluate the condition.
1641 /// Use DIL to evaluate the condition, and if it fails,
1642 /// fall back to UserExpression.
1644 /// Use the mode specified by the `target.breakpoints-condition-mode` setting.
1645 /// This value is only used as the default breakpoint condition behavior and
1646 /// cannot be set explicitly in settings or breakpoint command options.
1648};
1649
1650} // namespace lldb
1651
1652#endif // LLDB_LLDB_ENUMERATIONS_H
#define LLDB_MARK_AS_BITMASK_ENUM(Enum)
#define FLAGS_ENUM(Name)
@ eInputReaderEndOfFile
reader received an EOF char (probably from a control-d)
@ eInputReaderActivate
reader is newly pushed onto the reader stack
@ eInputReaderInterrupt
reader received an interrupt signal (probably from a control-c)
@ eInputReaderReactivate
reader is on top of the stack again after another reader was popped off
@ eInputReaderDeactivate
another reader was pushed on the stack
@ eInputReaderAsynchronousOutputWritten
an async output event occurred; the reader may want to do something
@ eInputReaderDone
reader was just popped off the stack and is done
@ eInputReaderGotToken
reader got one of its tokens (granularity)
@ eRemoteDiskDirectoryCompletion
@ eFrameIndexCompletion
@ eModuleUUIDCompletion
@ eDisassemblyFlavorCompletion
@ eVariablePathCompletion
@ eDiskDirectoryCompletion
@ eTypeCategoryNameCompletion
@ ePlatformPluginCompletion
@ eSettingsNameCompletion
@ eSourceFileCompletion
@ eTypeLanguageCompletion
@ eStopHookIDCompletion
@ eWatchpointIDCompletion
@ eBreakpointNameCompletion
@ eProcessPluginCompletion
@ eRemoteDiskFileCompletion
@ eBreakpointCompletion
@ eThreadIndexCompletion
@ eArchitectureCompletion
@ eScriptedExtensionCompletion
@ eProcessNameCompletion
@ eManagedPluginCompletion
@ eTerminatorCompletion
constexpr unsigned BreakpointResolverAllResolversMask
TypeSummaryCapping
Whether a summary should cap how much data it returns to users or not.
ScriptLanguage
Script interpreter types.
@ eScriptLanguageUnknown
@ eScriptLanguageDefault
@ eScriptLanguageNone
@ eScriptLanguagePython
MatchType
String matching algorithm used by SBTarget.
@ eMatchTypeRegexInsensitive
BreakpointConditionMode
Modes for evaluating breakpoint conditions.
@ eBreakpointConditionModeExpr
Use UserExpression to evaluate the condition.
@ eBreakpointConditionModeDWIM
Use DIL to evaluate the condition, and if it fails, fall back to UserExpression.
@ eBreakpointConditionModeDIL
Use Data Inspection Language (DIL) to evaluate the condition.
@ eBreakpointConditionModeDefault
Use the mode specified by the target.breakpoints-condition-mode setting.
ExpressionEvaluationPhase
Expression Evaluation Stages.
@ eExpressionEvaluationComplete
@ eExpressionEvaluationParse
@ eExpressionEvaluationExecution
@ eExpressionEvaluationIRGen
ScriptedExtension
Scripting extension types.
@ eScriptedExtensionOperatingSystem
@ eScriptedExtensionScriptedHook
@ eScriptedExtensionParsedCommand
@ eScriptedExtensionScriptedPlatform
@ eScriptedExtensionScriptedCommand
@ eScriptedExtensionScriptedProcess
@ eScriptedExtensionScriptedFrame
@ eScriptedExtensionScriptedBreakpointResolver
@ kLastScriptedExtension
@ eScriptedExtensionScriptedThreadPlan
@ eScriptedExtensionScriptedStringSummary
@ eScriptedExtensionScriptedFrameProvider
@ eScriptedExtensionScriptedThread
@ eScriptedExtensionScriptedStackFrameRecognizer
@ eScriptedExtensionScriptedSyntheticChildren
@ eScriptedExtensionInvalid
Severity
Used for expressing severity in logs and diagnostics.
TraceType
Deprecated.
@ eTraceTypeProcessorTrace
Intel Processor Trace.
DescriptionLevel
Description levels for "void GetDescription(Stream *, DescriptionLevel)" calls.
@ eDescriptionLevelBrief
@ kNumDescriptionLevels
@ eDescriptionLevelInitial
@ eDescriptionLevelFull
@ eDescriptionLevelVerbose
DebuggerBroadcastBit
Used by the debugger to indicate which events are being broadcasted.
@ eBroadcastBitProgressCategory
Deprecated.
@ eBroadcastBitExternalProgress
@ eBroadcastBitProgress
@ eBroadcastSymbolChange
@ eBroadcastBitExternalProgressCategory
Deprecated.
BasicType
Basic types enumeration for the public API SBType::GetBasicType().
@ eBasicTypeUnsignedShort
@ eBasicTypeSignedChar
@ eBasicTypeUnsignedInt128
@ eBasicTypeFloatComplex
@ eBasicTypeUnsignedWChar
@ eBasicTypeUnsignedLong
@ eBasicTypeLongDoubleComplex
@ eBasicTypeSignedWChar
@ eBasicTypeUnsignedChar
@ eBasicTypeUnsignedLongLong
@ eBasicTypeDoubleComplex
@ eBasicTypeLongDouble
@ eBasicTypeUnsignedInt
RunDirection
Execution directions.
@ eWatchpointWriteTypeOnModify
Stop on a write to the memory region that changes its value.
@ eWatchpointWriteTypeAlways
Stop on any write access to the memory region, even if the value doesn't change.
@ eWatchpointWriteTypeDisabled
Don't stop when the watched memory region is written to.
ChildCacheState
Specifies if children need to be re-computed after a call to SyntheticChildrenFrontEnd::Update.
@ eRefetch
Children need to be recomputed dynamically.
@ eReuse
Children did not change and don't need to be recomputed; re-use what we computed the last time we cal...
@ eWatchPointValueKindInvalid
@ eWatchPointValueKindExpression
Watchpoint was created watching the result of an expression that was evaluated at creation time.
@ eWatchPointValueKindVariable
Watchpoint was created watching a variable.
@ ePluginDomainKindTarget
@ ePluginDomainKindGlobal
@ ePluginDomainKindDebugger
AddressMaskRange
Used in the SBProcess AddressMask/FixAddress methods.
@ eAddressMaskRangeHigh
CommandInterpreterResult
The result from a command interpreter run.
@ eCommandInterpreterResultInferiorCrash
Stopped because the corresponding option was set and the inferior crashed.
@ eCommandInterpreterResultSuccess
Command interpreter finished successfully.
@ eCommandInterpreterResultCommandError
Stopped because the corresponding option was set and a command returned an error.
@ eCommandInterpreterResultQuitRequested
Stopped because quit was requested.
ConnectionStatus
Connection Status Types.
@ eConnectionStatusError
Check GetError() for details.
@ eConnectionStatusInterrupted
Interrupted read.
@ eConnectionStatusTimedOut
Request timed out.
@ eConnectionStatusEndOfFile
End-of-file encountered.
@ eConnectionStatusSuccess
Success.
@ eConnectionStatusLostConnection
Lost connection while connected to a valid connection.
@ eConnectionStatusNoConnection
No connection.
TraceEvent
Events that might happen during a trace session.
@ eTraceEventSyncPoint
The underlying tracing technology emitted a synchronization event used by trace processors.
@ eTraceEventCPUChanged
Event due to CPU change for a thread.
@ eTraceEventHWClockTick
Event due to a CPU HW clock tick.
@ eTraceEventDisabledHW
Tracing was disable for some time due to a hardware trigger.
@ eTraceEventDisabledSW
Tracing was disabled for some time due to a software trigger.
Format
Display format definitions.
@ eFormatCString
Null-terminated C strings.
@ eFormatCharArray
Print characters with no single quotes, used for character arrays that can contain non printable char...
@ eFormatInstruction
Disassemble an opcode.
@ eFormatVectorOfChar
@ eFormatVectorOfUInt64
@ eFormatVoid
Do not print this.
@ eFormatVectorOfFloat16
@ eFormatVectorOfSInt64
@ eFormatComplex
Floating point complex type.
@ eFormatHexFloat
ISO C99 hex float string.
@ eFormatBytesWithASCII
@ eFormatOSType
OS character codes encoded into an integer 'PICT' 'text' etc...
@ eFormatAddressInfo
Describe what an address points to (func + offset with file/line, symbol + offset,...
@ eFormatVectorOfUInt128
@ eFormatVectorOfUInt8
@ eFormatComplexFloat
@ eFormatVectorOfFloat32
@ eFormatVectorOfSInt32
@ eFormatVectorOfSInt8
@ eFormatVectorOfUInt16
@ eFormatHexUppercase
@ eFormatVectorOfFloat64
@ eFormatCharPrintable
Only printable characters, '.' if not printable.
@ eFormatComplexInteger
Integer complex type.
@ eFormatVectorOfSInt16
@ eFormatFloat128
Disambiguate between 128-bit long double (which uses eFormatFloat) and __float128 (which uses eFormat...
@ eFormatVectorOfUInt32
FrameComparison
This is the return value for frame comparisons.
@ eFrameCompareSameParent
DWIMPrintVerbosity
Enum to control the verbosity level of dwim-print execution.
@ eDWIMPrintVerbosityFull
Always print a message indicating how dwim-print is evaluating its expression.
@ eDWIMPrintVerbosityNone
Run dwim-print with no verbosity.
@ eDWIMPrintVerbosityExpression
Print a message when dwim-print uses expression evaluation.
StateType
Process and Thread States.
@ 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.
@ eStateDetached
Process has been detached and can't be examined.
@ eStateStopped
Process or thread is stopped and can be examined.
@ eStateSuspended
Process or thread is in a suspended state as far as the debugger is concerned while other processes o...
@ eStateRunning
Process or thread is running and can't be examined.
@ eStateLaunching
Process is in the process of launching.
@ eStateAttaching
Process is currently trying to attach.
@ eStateExited
Process has exited 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.
LanguageType
Programming language type.
@ eLanguageTypeC_plus_plus_20
ISO C++:2020.
@ eLanguageTypeC_plus_plus_14
ISO C++:2014.
@ eLanguageTypeHaskell
Haskell.
@ eLanguageTypeRenderScript
@ eLanguageTypePLI
ANSI PL/I:1976.
@ eLanguageTypeC11
ISO C:2011.
@ eLanguageTypeJava
Java.
@ eLanguageTypeFortran08
ISO Fortran 2008.
@ eLanguageTypeFortran18
@ eLanguageTypeC99
ISO C:1999.
@ eLanguageTypePascal83
ISO Pascal:1983.
@ eLanguageTypeModula3
Modula 3.
@ eLanguageTypeModula2
ISO Modula-2:1996.
@ eLanguageTypeOCaml
OCaml.
@ eLanguageTypeMipsAssembler
Mips_Assembler.
@ eLanguageTypeC_plus_plus_03
ISO C++:2003.
@ eLanguageTypeUnknown
Unknown or invalid language value.
@ eLanguageTypeRust
Rust.
@ eLanguageTypeFortran95
ISO Fortran 95.
@ eLanguageTypeC_sharp
@ eLanguageTypeAda2012
@ eLanguageTypeC_plus_plus_17
ISO C++:2017.
@ eLanguageTypeCrystal
@ eLanguageTypeObjC_plus_plus
Objective-C++.
@ eLanguageTypeC_plus_plus_11
ISO C++:2011.
@ eLanguageTypeSwift
Swift.
@ eLanguageTypeC89
ISO C:1989.
@ eLanguageTypeAda83
ISO Ada:1983.
@ eLanguageTypeJulia
Julia.
@ eLanguageTypeGo
Go.
@ eLanguageTypeFortran77
ISO Fortran 77.
@ eLanguageTypeKotlin
@ eLanguageTypeCobol85
ISO Cobol:1985.
@ eLanguageTypeUPC
Unified Parallel C.
@ eLanguageTypeC
Non-standardized C, such as K&R.
@ eLanguageTypeAda95
ISO Ada:1995.
@ eLanguageTypeCobol74
ISO Cobol:1974.
@ eLanguageTypePython
Python.
@ eLanguageTypeAda2005
@ eLanguageTypeOpenCL
OpenCL.
@ eLanguageTypeAssembly
@ eLanguageTypeD
D.
@ eLanguageTypeFortran90
ISO Fortran 90.
@ eLanguageTypeObjC
Objective-C.
@ eLanguageTypeC_plus_plus
ISO C++:1998.
@ eLanguageTypeLastStandardLanguage
@ eLanguageTypeDylan
Dylan.
@ eLanguageTypeFortran03
ISO Fortran 2003.
@ eSymbolSharedCacheUseHostSharedCache
@ eSymbolSharedCacheUseInferiorSharedCacheOnly
@ eSymbolSharedCacheUseHostLLDBMemory
@ eSymbolSharedCacheUseHostAndInferiorSharedCache
@ eNameMatchStyleSelector
@ eNameMatchStyleMethod
FLAGS_ENUM(LaunchFlags)
Launch Flags.
PathType
Used with SBHostOS::GetLLDBPath (lldb::PathType) to find files that are related to LLDB on the curren...
@ ePathTypeGlobalLLDBTempSystemDir
The LLDB temp directory for this system, NOT cleaned up on a process exit.
@ ePathTypeHeaderDir
Find LLDB header file directory.
@ ePathTypeLLDBSystemPlugins
System plug-ins directory.
@ ePathTypeLLDBTempSystemDir
The LLDB temp directory for this system that will be cleaned up on exit.
@ ePathTypeClangDir
Find path to Clang builtin headers.
@ ePathTypeLLDBUserPlugins
User plug-ins directory.
@ ePathTypeSupportExecutableDir
Find LLDB support executable directory (debugserver, etc)
@ ePathTypePythonDir
Find Python modules (PYTHONPATH) directory.
@ ePathTypeLLDBShlibDir
The directory where the lldb.so (unix) or LLDB mach-o file in LLDB.framework (MacOSX) exists.
@ eErrorTypeGeneric
Generic errors that can be any value.
@ eErrorTypeWin32
Standard Win32 error codes.
@ eErrorTypeExpression
These are from the ExpressionResults enum.
@ eErrorTypeMachKernel
Mach kernel error codes.
@ eErrorTypePOSIX
POSIX error codes.
FormatterMatchType
Type of match to be performed when looking for a formatter for a data type.
@ eLastFormatterMatchType
@ eFormatterMatchCallback
ExpressionResults
The results of expression evaluation.
@ eExpressionTimedOut
@ eExpressionCompleted
@ eExpressionHitBreakpoint
@ eExpressionInterrupted
@ eExpressionDiscarded
@ eExpressionParseError
@ eExpressionStoppedForDebug
@ eExpressionResultUnavailable
@ eExpressionThreadVanished
@ eExpressionSetupError
@ eTemplateArgumentKindTemplate
@ eTemplateArgumentKindTemplateExpansion
@ eTemplateArgumentKindNull
@ eTemplateArgumentKindNullPtr
@ eTemplateArgumentKindDeclaration
@ eTemplateArgumentKindIntegral
@ eTemplateArgumentKindPack
@ eTemplateArgumentKindType
@ eTemplateArgumentKindStructuralValue
@ eTemplateArgumentKindExpression
SymbolType
Symbol types.
@ eSymbolTypeUndefined
@ eSymbolTypeVariableType
@ eSymbolTypeObjCMetaClass
@ eSymbolTypeReExported
@ eSymbolTypeObjCClass
@ eSymbolTypeObjectFile
@ eSymbolTypeTrampoline
@ eSymbolTypeResolver
@ eSymbolTypeSourceFile
@ eSymbolTypeException
@ eSymbolTypeVariable
@ eSymbolTypeAbsolute
@ eSymbolTypeAdditional
When symbols take more than one entry, the extra entries get this type.
@ eSymbolTypeInstrumentation
@ eSymbolTypeHeaderFile
@ eSymbolTypeCommonBlock
@ eSymbolTypeCompiler
@ eSymbolTypeLineHeader
@ eSymbolTypeObjCIVar
@ eSymbolTypeLineEntry
@ eSymbolTypeScopeBegin
@ eSymbolTypeScopeEnd
Encoding
Register encoding definitions.
@ eEncodingIEEE754
float
@ eEncodingVector
vector registers
@ eEncodingUint
unsigned integer
@ eEncodingSint
signed integer
InstrumentationRuntimeType
@ eInstrumentationRuntimeTypeThreadSanitizer
@ eInstrumentationRuntimeTypeBoundsSafety
@ eInstrumentationRuntimeTypeMainThreadChecker
@ eInstrumentationRuntimeTypeLibsanitizersAsan
DEPRECATED: use eInstrumentationRuntimeTypeAddressSanitizer.
@ eInstrumentationRuntimeTypeAddressSanitizer
@ eNumInstrumentationRuntimeTypes
@ eInstrumentationRuntimeTypeUndefinedBehaviorSanitizer
@ eInstrumentationRuntimeTypeSwiftRuntimeReporting
StopDisassemblyType
Used to determine when to show disassembly.
@ eStopDisassemblyTypeNever
@ eStopDisassemblyTypeNoSource
@ eStopDisassemblyTypeAlways
@ eStopDisassemblyTypeNoDebugInfo
@ eStopShowColumnAnsi
@ eStopShowColumnCaret
@ eStopShowColumnNone
@ eStopShowColumnAnsiOrCaret
ReturnStatus
Command Return Status Types.
@ eReturnStatusStarted
@ eReturnStatusSuccessContinuingResult
@ eReturnStatusFailed
@ eReturnStatusSuccessContinuingNoResult
@ eReturnStatusSuccessFinishResult
@ eReturnStatusInvalid
@ eReturnStatusSuccessFinishNoResult
QueueKind
Queue type.
@ eArgTypeSEDStylePair
@ eArgTypeExpressionPath
@ eArgTypeBreakpointIDRange
@ eArgTypeBreakpointConditionMode
@ eArgTypePythonFunction
@ eArgTypePermissionsNumber
@ eArgTypeNumberPerLine
@ eArgTypePermissionsString
@ eArgTypeLogCategory
@ eArgTypeDescriptionVerbosity
@ eArgTypeOldPathPrefix
@ eArgTypePluginDomain
@ eArgTypeArchitecture
@ eArgTypeProcessName
@ eArgTypeFrameProviderIDRange
@ eArgTypeBreakpointID
@ eArgTypeThreadIndex
@ eArgTypeNewPathPrefix
@ eArgTypeStartAddress
@ eArgTypeNameMatchStyle
@ eArgTypeSettingPrefix
@ eArgTypePythonClass
@ eArgTypeFileLineColumn
@ eArgTypeCommandName
@ eArgTypeSummaryString
@ eArgTypePythonScript
@ eArgTypeScriptedExtension
@ eArgTypeRecognizerID
@ eArgTypeBreakpointResolverMask
@ eArgTypeManagedPlugin
@ eArgTypeWatchpointID
@ eArgTypeCPUFeatures
@ eArgTypeFunctionOrSymbol
@ eArgTypeRemoteFilename
@ eArgTypeExceptionStage
@ eArgTypeSettingIndex
@ eArgTypeSettingVariableName
@ eArgTypeDisassemblyFlavor
@ eArgTypeRegisterName
@ eArgTypeBreakpointName
@ eArgTypeScriptedCommandSynchronicity
@ eArgTypeCompletionType
@ eArgTypeWatchpointIDRange
@ eArgTypeSaveCoreStyle
@ eArgTypeRegularExpression
@ eArgTypeUnsignedInteger
@ eArgTypeFunctionName
@ eArgTypeAliasOptions
@ eArgTypeDirectoryName
@ eArgTypeAddressOrExpression
ByteOrder
Byte ordering definitions.
MemberFunctionKind
Kind of member function.
@ eMemberFunctionKindInstanceMethod
A function that applies to a specific instance.
@ eMemberFunctionKindConstructor
A function used to create instances.
@ eMemberFunctionKindUnknown
Not sure what the type of this is.
@ eMemberFunctionKindDestructor
A function used to tear down existing instances.
@ eMemberFunctionKindStaticMethod
A function that applies to a type rather than any instance.
InstructionControlFlowKind
Architecture-agnostic categorization of instructions for traversing the control flow of a trace.
@ eInstructionControlFlowKindReturn
The instruction is a near (function) return.
@ eInstructionControlFlowKindFarJump
The instruction is a jump-like far transfer. E.g. FAR JMP.
@ eInstructionControlFlowKindOther
The instruction is something not listed below, i.e.
@ eInstructionControlFlowKindFarCall
The instruction is a call-like far transfer.
@ eInstructionControlFlowKindFarReturn
The instruction is a return-like far transfer.
@ eInstructionControlFlowKindUnknown
The instruction could not be classified.
@ eInstructionControlFlowKindJump
The instruction is a near unconditional jump.
@ eInstructionControlFlowKindCall
The instruction is a near (function) call.
@ eInstructionControlFlowKindCondJump
The instruction is a near conditional jump.
TraceCursorSeekType
Enum to indicate the reference point when invoking TraceCursor::Seek().
@ eTraceCursorSeekTypeCurrent
The current position in the trace.
@ eTraceCursorSeekTypeEnd
The end of the trace, i.e the most recent item.
@ eTraceCursorSeekTypeBeginning
The beginning of the trace, i.e the oldest item.
@ eSearchDepthInvalid
@ eSearchDepthAddress
@ eSearchDepthFunction
@ kLastSearchDepthKind
@ eSearchDepthCompUnit
@ eStepTypeInto
Single step into a specified context.
@ eStepTypeTraceOver
Single step one instruction, stepping over.
@ eStepTypeTrace
Single step one instruction.
@ eStepTypeOut
Single step out a specified context.
@ eStepTypeScripted
A step type implemented by the script interpreter.
@ eStepTypeOver
Single step over a specified context.
@ eValueTypeVTableEntry
function pointer in virtual function table
@ eValueTypeSyntheticFlag
A flag that indicates if the value type is synthetic or not.
@ eValueTypeVTable
virtual function table
@ eValueTypeVariableGlobal
globals variable
@ eValueTypeConstResult
constant result variables
@ kValueTypeFlagsMask
@ eValueTypeVariableLocal
function local variables
@ eValueTypeVariableArgument
function argument variables
@ eValueTypeRegister
stack frame register value
@ eValueTypeVariableStatic
static variable
@ eValueTypeRegisterSet
A collection of stack frame register values.
@ eValueTypeVariableThreadLocal
thread local storage variable
@ eGdbSignalBadInstruction
@ eTraceItemKindInstruction
StopReason
Thread stop reasons.
@ eStopReasonInstrumentation
@ eStopReasonPlanComplete
@ eStopReasonHistoryBoundary
@ eStopReasonBreakpoint
@ eStopReasonExec
Program was re-exec'ed.
@ eStopReasonVForkDone
@ eStopReasonInterrupt
Thread requested interrupt.
@ eStopReasonProcessorTrace
@ eStopReasonThreadExiting
@ eStopReasonException
@ eStopReasonWatchpoint
BinaryInformationLevel
When the Process plugin can retrieve information about all binaries loaded in the target process,...
@ eBinaryInformationLevelAddrName
@ eBinaryInformationLevelAddrNameUUID
@ eBinaryInformationLevelFull
@ eBinaryInformationLevelAddrOnly
AddressMaskType
Used in the SBProcess AddressMask/FixAddress methods.
@ eDynamicDontRunTarget
@ eDynamicCanRunTarget
@ eStructuredDataTypeFloat
@ eStructuredDataTypeDictionary
@ eStructuredDataTypeInvalid
@ eStructuredDataTypeInteger
@ eStructuredDataTypeGeneric
@ eStructuredDataTypeArray
@ eStructuredDataTypeSignedInteger
@ eStructuredDataTypeUnsignedInteger
@ eStructuredDataTypeNull
@ eStructuredDataTypeBoolean
@ eStructuredDataTypeString
@ eSectionTypeDWARFDebugStrOffsets
@ eSectionTypeELFDynamicSymbols
Elf SHT_DYNSYM section.
@ eSectionTypeInvalid
@ eSectionTypeDWARFDebugPubNames
@ eSectionTypeDataObjCCFStrings
Objective-C const CFString/NSString objects.
@ eSectionTypeZeroFill
@ eSectionTypeDWARFDebugLocDwo
@ eSectionTypeDWARFDebugFrame
@ eSectionTypeARMextab
@ eSectionTypeContainer
The section contains child sections.
@ eSectionTypeDWARFDebugLocLists
DWARF v5 .debug_loclists.
@ eSectionTypeDWARFDebugTypes
DWARF .debug_types section.
@ eSectionTypeDataSymbolAddress
Address of a symbol in the symbol table.
@ eSectionTypeELFDynamicLinkInfo
Elf SHT_DYNAMIC section.
@ eSectionTypeDWARFDebugMacInfo
@ eSectionTypeAbsoluteAddress
Dummy section for symbols with absolute address.
@ eSectionTypeCompactUnwind
compact unwind section in Mach-O, __TEXT,__unwind_info
@ eSectionTypeELFRelocationEntries
Elf SHT_REL or SHT_REL section.
@ eSectionTypeDWARFAppleNamespaces
@ eSectionTypeLLDBFormatters
@ eSectionTypeDWARFDebugNames
DWARF v5 .debug_names.
@ eSectionTypeDWARFDebugRngLists
DWARF v5 .debug_rnglists.
@ eSectionTypeEHFrame
@ eSectionTypeDWARFDebugStrOffsetsDwo
@ eSectionTypeDWARFDebugMacro
@ eSectionTypeDWARFAppleTypes
@ eSectionTypeWasmGlobal
@ eSectionTypeDWARFDebugInfo
@ eSectionTypeDWARFDebugTypesDwo
@ eSectionTypeDWARFDebugRanges
@ eSectionTypeDWARFDebugRngListsDwo
@ eSectionTypeLLDBTypeSummaries
@ eSectionTypeGoSymtab
@ eSectionTypeARMexidx
@ eSectionTypeDWARFDebugLine
@ eSectionTypeDWARFDebugPubTypes
@ eSectionTypeDataObjCMessageRefs
Pointer to function pointer + selector.
@ eSectionTypeDWARFDebugTuIndex
@ eSectionTypeDWARFDebugStr
@ eSectionTypeDWARFDebugLineStr
DWARF v5 .debug_line_str.
@ eSectionTypeDWARFDebugLoc
@ eSectionTypeDWARFAppleNames
@ eSectionTypeDataCStringPointers
Pointers to C string data.
@ eSectionTypeDWARFAppleObjC
@ eSectionTypeSwiftModules
@ eSectionTypeDWARFDebugCuIndex
@ eSectionTypeDWARFDebugAranges
@ eSectionTypeDWARFDebugAbbrevDwo
@ eSectionTypeDWARFGNUDebugAltLink
@ eSectionTypeDWARFDebugStrDwo
@ eSectionTypeDWARFDebugAbbrev
@ eSectionTypeDataPointers
@ eSectionTypeDWARFDebugLocListsDwo
@ eSectionTypeDWARFDebugInfoDwo
@ eSectionTypeDWARFDebugAddr
@ eSectionTypeWasmName
@ eSectionTypeDataCString
Inlined C string data.
@ eSectionTypeELFSymbolTable
Elf SHT_SYMTAB section.
RunMode
Thread Run Modes.
@ eOnlyDuringStepping
DILMode
Data Inspection Language (DIL) evaluation modes.
@ eDILModeFull
Allowed: everything supported by DIL.
@ eDILModeLegacy
Allowed: identifiers, integers, operators: '.', '->', '*', '&', '[]'.
@ eDILModeSimple
Allowed: identifiers, operators: '.'.
@ eSymbolDownloadBackground
@ eSymbolDownloadForeground
CommandReturnObjectCallbackResult
Callback return value, indicating whether it handled printing the CommandReturnObject or deferred doi...
@ eCommandReturnObjectPrintCallbackSkipped
The callback deferred printing the command return object.
@ eCommandReturnObjectPrintCallbackHandled
The callback handled printing the command return object.
@ eExceptionStageReThrow
@ eExceptionStageCreate
InputReaderGranularity
Token size/granularities for Input Readers.
@ eInputReaderGranularityInvalid
@ eInputReaderGranularityAll
@ eInputReaderGranularityWord
@ eInputReaderGranularityByte
@ eInputReaderGranularityLine
QueueItemKind
Queue work item types.
@ eQueueItemKindUnknown
@ eQueueItemKindFunction
RegisterKind
Register numbering types.
@ eRegisterKindGeneric
insn ptr reg, stack ptr reg, etc not specific to any particular target
@ eRegisterKindLLDB
lldb's internal register numbers
@ eRegisterKindDWARF
the register numbers seen DWARF
@ eRegisterKindEHFrame
the register numbers seen in eh_frame
@ eRegisterKindProcessPlugin
num used by the process plugin - e.g.