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 eStateUnloaded, ///< Process is object is valid, but not currently loaded
77 eStateConnected, ///< Process is connected to remote debug services, but not
78 /// launched or attached to anything yet
79 eStateAttaching, ///< Process is currently trying to attach
80 eStateLaunching, ///< Process is in the process of launching
81 // The state changes eStateAttaching and eStateLaunching are both sent while
82 // the private state thread is either not yet started or paused. For that
83 // reason, they should only be signaled as public state changes, and not
84 // private state changes.
85 eStateStopped, ///< Process or thread is stopped and can be examined.
86 eStateRunning, ///< Process or thread is running and can't be examined.
87 eStateStepping, ///< Process or thread is in the process of stepping and can
88 /// not be examined.
89 eStateCrashed, ///< Process or thread has crashed and can be examined.
90 eStateDetached, ///< Process has been detached and can't be examined.
91 eStateExited, ///< Process has exited and can't be examined.
92 eStateSuspended, ///< Process or thread is in a suspended state as far
93 ///< as the debugger is concerned while other processes
94 ///< or threads get the chance to run.
96};
97
98/// Launch Flags.
99FLAGS_ENUM(LaunchFlags){
100 eLaunchFlagNone = 0u,
101 eLaunchFlagExec = (1u << 0), ///< Exec when launching and turn the calling
102 /// process into a new process
103 eLaunchFlagDebug = (1u << 1), ///< Stop as soon as the process launches to
104 /// allow the process to be debugged
105 eLaunchFlagStopAtEntry = (1u
106 << 2), ///< Stop at the program entry point
107 /// instead of auto-continuing when
108 /// launching or attaching at entry point
109 eLaunchFlagDisableASLR =
110 (1u << 3), ///< Disable Address Space Layout Randomization
111 eLaunchFlagDisableSTDIO =
112 (1u << 4), ///< Disable stdio for inferior process (e.g. for a GUI app)
113 eLaunchFlagLaunchInTTY =
114 (1u << 5), ///< Launch the process in a new TTY if supported by the host
115 eLaunchFlagLaunchInShell =
116 (1u << 6), ///< Launch the process inside a shell to get shell expansion
117 eLaunchFlagLaunchInSeparateProcessGroup =
118 (1u << 7), ///< Launch the process in a separate process group
119 ///< If you are going to hand the process off (e.g. to
120 ///< debugserver)
121 eLaunchFlagDontSetExitStatus = (1u << 8),
122 ///< set this flag so lldb & the handee don't race to set its exit status.
123 eLaunchFlagDetachOnError = (1u << 9), ///< If set, then the client stub
124 ///< should detach rather than killing
125 ///< the debugee
126 ///< if it loses connection with lldb.
127 eLaunchFlagShellExpandArguments =
128 (1u << 10), ///< Perform shell-style argument expansion
129 eLaunchFlagCloseTTYOnExit = (1u << 11), ///< Close the open TTY on exit
130 eLaunchFlagInheritTCCFromParent =
131 (1u << 12), ///< Don't make the inferior responsible for its own TCC
132 ///< permissions but instead inherit them from its parent.
133};
134
135/// Thread Run Modes.
137
138/// Byte ordering definitions.
145
146/// Register encoding definitions.
149 eEncodingUint, ///< unsigned integer
150 eEncodingSint, ///< signed integer
152 eEncodingVector ///< vector registers
154
155/// Display format definitions.
156enum Format {
164 eFormatCharPrintable, ///< Only printable characters, '.' if not printable
165 eFormatComplex, ///< Floating point complex type
167 eFormatCString, ///< NULL terminated C strings
174 eFormatOSType, ///< OS character codes encoded into an integer 'PICT' 'text'
175 ///< etc...
193 eFormatComplexInteger, ///< Integer complex type
194 eFormatCharArray, ///< Print characters with no single quotes, used for
195 ///< character arrays that can contain non printable
196 ///< characters
197 eFormatAddressInfo, ///< Describe what an address points to (func + offset
198 ///< with file/line, symbol + offset, data, etc)
199 eFormatHexFloat, ///< ISO C99 hex float string
200 eFormatInstruction, ///< Disassemble an opcode
201 eFormatVoid, ///< Do not print this
205
206/// Description levels for "void GetDescription(Stream *, DescriptionLevel)"
207/// calls.
215
216/// Script interpreter types.
224
225/// Register numbering types.
226// See RegisterContext::ConvertRegisterKindToRegisterNumber to convert any of
227// these to the lldb internal register numbering scheme (eRegisterKindLLDB).
229 eRegisterKindEHFrame = 0, ///< the register numbers seen in eh_frame
230 eRegisterKindDWARF, ///< the register numbers seen DWARF
231 eRegisterKindGeneric, ///< insn ptr reg, stack ptr reg, etc not specific to
232 ///< any particular target
233 eRegisterKindProcessPlugin, ///< num used by the process plugin - e.g. by the
234 ///< remote gdb-protocol stub program
235 eRegisterKindLLDB, ///< lldb's internal register numbers
238
239/// Thread stop reasons.
248 eStopReasonExec, ///< Program was re-exec'ed
256 eStopReasonInterrupt, ///< Thread requested interrupt
257};
258
259/// Command Return Status Types.
270
271/// The results of expression evaluation.
284
295
296/// Connection Status Types.
299 eConnectionStatusEndOfFile, ///< End-of-file encountered
300 eConnectionStatusError, ///< Check GetError() for details
301 eConnectionStatusTimedOut, ///< Request timed out
303 eConnectionStatusLostConnection, ///< Lost connection while connected to a
304 ///< valid connection
305 eConnectionStatusInterrupted ///< Interrupted read
307
310 eErrorTypeGeneric, ///< Generic errors that can be any value.
311 eErrorTypeMachKernel, ///< Mach kernel error codes.
312 eErrorTypePOSIX, ///< POSIX error codes.
313 eErrorTypeExpression, ///< These are from the ExpressionResults enum.
314 eErrorTypeWin32 ///< Standard Win32 error codes.
316
319 eValueTypeVariableGlobal = 1, ///< globals variable
320 eValueTypeVariableStatic = 2, ///< static variable
321 eValueTypeVariableArgument = 3, ///< function argument variables
322 eValueTypeVariableLocal = 4, ///< function local variables
323 eValueTypeRegister = 5, ///< stack frame register value
324 eValueTypeRegisterSet = 6, ///< A collection of stack frame register values
325 eValueTypeConstResult = 7, ///< constant result variables
326 eValueTypeVariableThreadLocal = 8, ///< thread local storage variable
327 eValueTypeVTable = 9, ///< virtual function table
328 eValueTypeVTableEntry = 10, ///< function pointer in virtual function table
329};
330
331/// Token size/granularities for Input Readers.
332
340
341/// These mask bits allow a common interface for queries that can
342/// limit the amount of information that gets parsed to only the
343/// information that is requested. These bits also can indicate what
344/// actually did get resolved during query function calls.
345///
346/// Each definition corresponds to a one of the member variables
347/// in this class, and requests that that item be resolved, or
348/// indicates that the member did get resolved.
349FLAGS_ENUM(SymbolContextItem){
350 /// Set when \a target is requested from a query, or was located
351 /// in query results
352 eSymbolContextTarget = (1u << 0),
353 /// Set when \a module is requested from a query, or was located
354 /// in query results
355 eSymbolContextModule = (1u << 1),
356 /// Set when \a comp_unit is requested from a query, or was
357 /// located in query results
358 eSymbolContextCompUnit = (1u << 2),
359 /// Set when \a function is requested from a query, or was located
360 /// in query results
361 eSymbolContextFunction = (1u << 3),
362 /// Set when the deepest \a block is requested from a query, or
363 /// was located in query results
364 eSymbolContextBlock = (1u << 4),
365 /// Set when \a line_entry is requested from a query, or was
366 /// located in query results
367 eSymbolContextLineEntry = (1u << 5),
368 /// Set when \a symbol is requested from a query, or was located
369 /// in query results
370 eSymbolContextSymbol = (1u << 6),
371 /// Indicates to try and lookup everything up during a routine
372 /// symbol context query.
373 eSymbolContextEverything = ((eSymbolContextSymbol << 1) - 1u),
374 /// Set when \a global or static variable is requested from a
375 /// query, or was located in query results.
376 /// eSymbolContextVariable is potentially expensive to lookup so
377 /// it isn't included in eSymbolContextEverything which stops it
378 /// from being used during frame PC lookups and many other
379 /// potential address to symbol context lookups.
380 eSymbolContextVariable = (1u << 7),
381
382 // Keep this last and up-to-date for what the last enum value is.
383 eSymbolContextLastItem = eSymbolContextVariable,
384};
385LLDB_MARK_AS_BITMASK_ENUM(SymbolContextItem)
386
387FLAGS_ENUM(Permissions){ePermissionsWritable = (1u << 0),
388 ePermissionsReadable = (1u << 1),
389 ePermissionsExecutable = (1u << 2)};
390LLDB_MARK_AS_BITMASK_ENUM(Permissions)
391
393 eInputReaderActivate, ///< reader is newly pushed onto the reader stack
394 eInputReaderAsynchronousOutputWritten, ///< an async output event occurred;
395 ///< the reader may want to do
396 ///< something
397 eInputReaderReactivate, ///< reader is on top of the stack again after another
398 ///< reader was popped off
399 eInputReaderDeactivate, ///< another reader was pushed on the stack
400 eInputReaderGotToken, ///< reader got one of its tokens (granularity)
401 eInputReaderInterrupt, ///< reader received an interrupt signal (probably from
402 ///< a control-c)
403 eInputReaderEndOfFile, ///< reader received an EOF char (probably from a
404 ///< control-d)
405 eInputReaderDone ///< reader was just popped off the stack and is done
407
408FLAGS_ENUM(BreakpointEventType){
409 eBreakpointEventTypeInvalidType = (1u << 0),
410 eBreakpointEventTypeAdded = (1u << 1),
411 eBreakpointEventTypeRemoved = (1u << 2),
412 eBreakpointEventTypeLocationsAdded = (1u << 3), ///< Locations added doesn't
413 ///< get sent when the
414 ///< breakpoint is created
415 eBreakpointEventTypeLocationsRemoved = (1u << 4),
416 eBreakpointEventTypeLocationsResolved = (1u << 5),
417 eBreakpointEventTypeEnabled = (1u << 6),
418 eBreakpointEventTypeDisabled = (1u << 7),
419 eBreakpointEventTypeCommandChanged = (1u << 8),
420 eBreakpointEventTypeConditionChanged = (1u << 9),
421 eBreakpointEventTypeIgnoreChanged = (1u << 10),
422 eBreakpointEventTypeThreadChanged = (1u << 11),
423 eBreakpointEventTypeAutoContinueChanged = (1u << 12)};
424
425FLAGS_ENUM(WatchpointEventType){
426 eWatchpointEventTypeInvalidType = (1u << 0),
427 eWatchpointEventTypeAdded = (1u << 1),
428 eWatchpointEventTypeRemoved = (1u << 2),
429 eWatchpointEventTypeEnabled = (1u << 6),
430 eWatchpointEventTypeDisabled = (1u << 7),
431 eWatchpointEventTypeCommandChanged = (1u << 8),
432 eWatchpointEventTypeConditionChanged = (1u << 9),
433 eWatchpointEventTypeIgnoreChanged = (1u << 10),
434 eWatchpointEventTypeThreadChanged = (1u << 11),
435 eWatchpointEventTypeTypeChanged = (1u << 12)};
436
438 /// Don't stop when the watched memory region is written to.
440 /// Stop on any write access to the memory region, even if
441 /// the value doesn't change. On some architectures, a write
442 /// near the memory region may be falsely reported as a match,
443 /// and notify this spurious stop as a watchpoint trap.
445 /// Stop on a write to the memory region that changes its value.
446 /// This is most likely the behavior a user expects, and is the
447 /// behavior in gdb. lldb can silently ignore writes near the
448 /// watched memory region that are reported as accesses to lldb.
451
452/// Programming language type.
453///
454/// These enumerations use the same language enumerations as the DWARF
455/// specification for ease of use and consistency.
456/// The enum -> string code is in Language.cpp, don't change this
457/// table without updating that code as well.
458///
459/// This datatype is used in SBExpressionOptions::SetLanguage() which
460/// makes this type API. Do not change its underlying storage type!
462 eLanguageTypeUnknown = 0x0000, ///< Unknown or invalid language value.
463 eLanguageTypeC89 = 0x0001, ///< ISO C:1989.
464 eLanguageTypeC = 0x0002, ///< Non-standardized C, such as K&R.
465 eLanguageTypeAda83 = 0x0003, ///< ISO Ada:1983.
466 eLanguageTypeC_plus_plus = 0x0004, ///< ISO C++:1998.
467 eLanguageTypeCobol74 = 0x0005, ///< ISO Cobol:1974.
468 eLanguageTypeCobol85 = 0x0006, ///< ISO Cobol:1985.
469 eLanguageTypeFortran77 = 0x0007, ///< ISO Fortran 77.
470 eLanguageTypeFortran90 = 0x0008, ///< ISO Fortran 90.
471 eLanguageTypePascal83 = 0x0009, ///< ISO Pascal:1983.
472 eLanguageTypeModula2 = 0x000a, ///< ISO Modula-2:1996.
473 eLanguageTypeJava = 0x000b, ///< Java.
474 eLanguageTypeC99 = 0x000c, ///< ISO C:1999.
475 eLanguageTypeAda95 = 0x000d, ///< ISO Ada:1995.
476 eLanguageTypeFortran95 = 0x000e, ///< ISO Fortran 95.
477 eLanguageTypePLI = 0x000f, ///< ANSI PL/I:1976.
478 eLanguageTypeObjC = 0x0010, ///< Objective-C.
479 eLanguageTypeObjC_plus_plus = 0x0011, ///< Objective-C++.
480 eLanguageTypeUPC = 0x0012, ///< Unified Parallel C.
481 eLanguageTypeD = 0x0013, ///< D.
482 eLanguageTypePython = 0x0014, ///< Python.
483 // NOTE: The below are DWARF5 constants, subject to change upon
484 // completion of the DWARF5 specification
485 eLanguageTypeOpenCL = 0x0015, ///< OpenCL.
486 eLanguageTypeGo = 0x0016, ///< Go.
487 eLanguageTypeModula3 = 0x0017, ///< Modula 3.
488 eLanguageTypeHaskell = 0x0018, ///< Haskell.
489 eLanguageTypeC_plus_plus_03 = 0x0019, ///< ISO C++:2003.
490 eLanguageTypeC_plus_plus_11 = 0x001a, ///< ISO C++:2011.
491 eLanguageTypeOCaml = 0x001b, ///< OCaml.
492 eLanguageTypeRust = 0x001c, ///< Rust.
493 eLanguageTypeC11 = 0x001d, ///< ISO C:2011.
494 eLanguageTypeSwift = 0x001e, ///< Swift.
495 eLanguageTypeJulia = 0x001f, ///< Julia.
496 eLanguageTypeDylan = 0x0020, ///< Dylan.
497 eLanguageTypeC_plus_plus_14 = 0x0021, ///< ISO C++:2014.
498 eLanguageTypeFortran03 = 0x0022, ///< ISO Fortran 2003.
499 eLanguageTypeFortran08 = 0x0023, ///< ISO Fortran 2008.
505 eLanguageTypeC_plus_plus_17 = 0x002a, ///< ISO C++:2017.
506 eLanguageTypeC_plus_plus_20 = 0x002b, ///< ISO C++:2020.
515
516 // Vendor Extensions
517 // Note: Language::GetNameForLanguageType
518 // assumes these can be used as indexes into array language_names, and
519 // Language::SetLanguageFromCString and Language::AsCString assume these can
520 // be used as indexes into array g_languages.
521 eLanguageTypeMipsAssembler, ///< Mips_Assembler.
522 // Mojo will move to the common list of languages once the DWARF committee
523 // creates a language code for it.
526
536
542
549
557
660 eArgTypeLastArg // Always keep this entry as the last entry in this
661 // enumeration!!
663
664/// Symbol types.
665// Symbol holds the SymbolType in a 6-bit field (m_type), so if you get over 63
666// entries you will have to resize that field.
690 eSymbolTypeAdditional, ///< When symbols take more than one entry, the extra
691 ///< entries get this type
700
704 eSectionTypeContainer, ///< The section contains child sections
706 eSectionTypeDataCString, ///< Inlined C string data
707 eSectionTypeDataCStringPointers, ///< Pointers to C string data
708 eSectionTypeDataSymbolAddress, ///< Address of a symbol in the symbol table
715 eSectionTypeDataObjCMessageRefs, ///< Pointer to function pointer + selector
716 eSectionTypeDataObjCCFStrings, ///< Objective-C const CFString/NSString
717 ///< objects
737 eSectionTypeELFSymbolTable, ///< Elf SHT_SYMTAB section
738 eSectionTypeELFDynamicSymbols, ///< Elf SHT_DYNSYM section
739 eSectionTypeELFRelocationEntries, ///< Elf SHT_REL or SHT_REL section
740 eSectionTypeELFDynamicLinkInfo, ///< Elf SHT_DYNAMIC section
744 eSectionTypeCompactUnwind, ///< compact unwind section in Mach-O,
745 ///< __TEXT,__unwind_info
747 eSectionTypeAbsoluteAddress, ///< Dummy section for symbols with absolute
748 ///< address
750 eSectionTypeDWARFDebugTypes, ///< DWARF .debug_types section
751 eSectionTypeDWARFDebugNames, ///< DWARF v5 .debug_names
753 eSectionTypeDWARFDebugLineStr, ///< DWARF v5 .debug_line_str
754 eSectionTypeDWARFDebugRngLists, ///< DWARF v5 .debug_rnglists
755 eSectionTypeDWARFDebugLocLists, ///< DWARF v5 .debug_loclists
769};
770
771FLAGS_ENUM(EmulateInstructionOptions){
772 eEmulateInstructionOptionNone = (0u),
773 eEmulateInstructionOptionAutoAdvancePC = (1u << 0),
774 eEmulateInstructionOptionIgnoreConditions = (1u << 1)};
775
776FLAGS_ENUM(FunctionNameType){
777 eFunctionNameTypeNone = 0u,
778 eFunctionNameTypeAuto =
779 (1u << 1), ///< Automatically figure out which FunctionNameType
780 ///< bits to set based on the function name.
781 eFunctionNameTypeFull = (1u << 2), ///< The function name.
782 ///< For C this is the same as just the name of the function For C++ this is
783 ///< the mangled or demangled version of the mangled name. For ObjC this is
784 ///< the full function signature with the + or - and the square brackets and
785 ///< the class and selector
786 eFunctionNameTypeBase = (1u
787 << 3), ///< The function name only, no namespaces
788 ///< or arguments and no class
789 ///< methods or selectors will be searched.
790 eFunctionNameTypeMethod = (1u << 4), ///< Find function by method name (C++)
791 ///< with no namespace or arguments
792 eFunctionNameTypeSelector =
793 (1u << 5), ///< Find function by selector name (ObjC) names
794 eFunctionNameTypeAny =
795 eFunctionNameTypeAuto ///< DEPRECATED: use eFunctionNameTypeAuto
796};
797LLDB_MARK_AS_BITMASK_ENUM(FunctionNameType)
798
799/// Basic types enumeration for the public API SBType::GetBasicType().
836
837/// Deprecated
840
841 /// Intel Processor Trace
844
857};
858
859FLAGS_ENUM(TypeClass){
860 eTypeClassInvalid = (0u), eTypeClassArray = (1u << 0),
861 eTypeClassBlockPointer = (1u << 1), eTypeClassBuiltin = (1u << 2),
862 eTypeClassClass = (1u << 3), eTypeClassComplexFloat = (1u << 4),
863 eTypeClassComplexInteger = (1u << 5), eTypeClassEnumeration = (1u << 6),
864 eTypeClassFunction = (1u << 7), eTypeClassMemberPointer = (1u << 8),
865 eTypeClassObjCObject = (1u << 9), eTypeClassObjCInterface = (1u << 10),
866 eTypeClassObjCObjectPointer = (1u << 11), eTypeClassPointer = (1u << 12),
867 eTypeClassReference = (1u << 13), eTypeClassStruct = (1u << 14),
868 eTypeClassTypedef = (1u << 15), eTypeClassUnion = (1u << 16),
869 eTypeClassVector = (1u << 17),
870 // Define the last type class as the MSBit of a 32 bit value
871 eTypeClassOther = (1u << 31),
872 // Define a mask that can be used for any type when finding types
873 eTypeClassAny = (0xffffffffu)};
875
887};
888
889/// Type of match to be performed when looking for a formatter for a data type.
890/// Used by classes like SBTypeNameSpecifier or lldb_private::TypeMatcher.
895
897};
898
899/// Options that can be set for a formatter to alter its behavior. Not
900/// all of these are applicable to all formatter types.
901FLAGS_ENUM(TypeOptions){eTypeOptionNone = (0u),
902 eTypeOptionCascade = (1u << 0),
903 eTypeOptionSkipPointers = (1u << 1),
904 eTypeOptionSkipReferences = (1u << 2),
905 eTypeOptionHideChildren = (1u << 3),
906 eTypeOptionHideValue = (1u << 4),
907 eTypeOptionShowOneLiner = (1u << 5),
908 eTypeOptionHideNames = (1u << 6),
909 eTypeOptionNonCacheable = (1u << 7),
910 eTypeOptionHideEmptyAggregates = (1u << 8),
911 eTypeOptionFrontEndWantsDereference = (1u << 9)};
912
913/// This is the return value for frame comparisons. If you are comparing frame
914/// A to frame B the following cases arise:
915///
916/// 1) When frame A pushes frame B (or a frame that ends up pushing
917/// B) A is Older than B.
918///
919/// 2) When frame A pushed frame B (or if frameA is on the stack
920/// but B is not) A is Younger than B.
921///
922/// 3) When frame A and frame B have the same StackID, they are
923/// Equal.
924///
925/// 4) When frame A and frame B have the same immediate parent
926/// frame, but are not equal, the comparison yields SameParent.
927///
928/// 5) If the two frames are on different threads or processes the
929/// comparison is Invalid.
930///
931/// 6) If for some reason we can't figure out what went on, we
932/// return Unknown.
941
942/// File Permissions.
943///
944/// Designed to mimic the unix file permission bits so they can be used with
945/// functions that set 'mode_t' to certain values for permissions.
946FLAGS_ENUM(FilePermissions){
947 eFilePermissionsUserRead = (1u << 8),
948 eFilePermissionsUserWrite = (1u << 7),
949 eFilePermissionsUserExecute = (1u << 6),
950 eFilePermissionsGroupRead = (1u << 5),
951 eFilePermissionsGroupWrite = (1u << 4),
952 eFilePermissionsGroupExecute = (1u << 3),
953 eFilePermissionsWorldRead = (1u << 2),
954 eFilePermissionsWorldWrite = (1u << 1),
955 eFilePermissionsWorldExecute = (1u << 0),
956
957 eFilePermissionsUserRW = (eFilePermissionsUserRead |
958 eFilePermissionsUserWrite | 0),
959 eFileFilePermissionsUserRX = (eFilePermissionsUserRead | 0 |
960 eFilePermissionsUserExecute),
961 eFilePermissionsUserRWX = (eFilePermissionsUserRead |
962 eFilePermissionsUserWrite |
963 eFilePermissionsUserExecute),
964
965 eFilePermissionsGroupRW = (eFilePermissionsGroupRead |
966 eFilePermissionsGroupWrite | 0),
967 eFilePermissionsGroupRX = (eFilePermissionsGroupRead | 0 |
968 eFilePermissionsGroupExecute),
969 eFilePermissionsGroupRWX = (eFilePermissionsGroupRead |
970 eFilePermissionsGroupWrite |
971 eFilePermissionsGroupExecute),
972
973 eFilePermissionsWorldRW = (eFilePermissionsWorldRead |
974 eFilePermissionsWorldWrite | 0),
975 eFilePermissionsWorldRX = (eFilePermissionsWorldRead | 0 |
976 eFilePermissionsWorldExecute),
977 eFilePermissionsWorldRWX = (eFilePermissionsWorldRead |
978 eFilePermissionsWorldWrite |
979 eFilePermissionsWorldExecute),
980
981 eFilePermissionsEveryoneR = (eFilePermissionsUserRead |
982 eFilePermissionsGroupRead |
983 eFilePermissionsWorldRead),
984 eFilePermissionsEveryoneW = (eFilePermissionsUserWrite |
985 eFilePermissionsGroupWrite |
986 eFilePermissionsWorldWrite),
987 eFilePermissionsEveryoneX = (eFilePermissionsUserExecute |
988 eFilePermissionsGroupExecute |
989 eFilePermissionsWorldExecute),
990
991 eFilePermissionsEveryoneRW = (eFilePermissionsEveryoneR |
992 eFilePermissionsEveryoneW | 0),
993 eFilePermissionsEveryoneRX = (eFilePermissionsEveryoneR | 0 |
994 eFilePermissionsEveryoneX),
995 eFilePermissionsEveryoneRWX = (eFilePermissionsEveryoneR |
996 eFilePermissionsEveryoneW |
997 eFilePermissionsEveryoneX),
998 eFilePermissionsFileDefault = eFilePermissionsUserRW,
999 eFilePermissionsDirectoryDefault = eFilePermissionsUserRWX,
1000};
1001
1002/// Queue work item types.
1003///
1004/// The different types of work that can be enqueued on a libdispatch aka Grand
1005/// Central Dispatch (GCD) queue.
1011
1012/// Queue type.
1013///
1014/// libdispatch aka Grand Central Dispatch (GCD) queues can be either
1015/// serial (executing on one thread) or concurrent (executing on
1016/// multiple threads).
1022
1023/// Expression Evaluation Stages.
1024///
1025/// These are the cancellable stages of expression evaluation, passed
1026/// to the expression evaluation callback, so that you can interrupt
1027/// expression evaluation at the various points in its lifecycle.
1034
1035/// Architecture-agnostic categorization of instructions for traversing the
1036/// control flow of a trace.
1037///
1038/// A single instruction can match one or more of these categories.
1040 /// The instruction could not be classified.
1042 /// The instruction is something not listed below, i.e. it's a sequential
1043 /// instruction that doesn't affect the control flow of the program.
1045 /// The instruction is a near (function) call.
1047 /// The instruction is a near (function) return.
1049 /// The instruction is a near unconditional jump.
1051 /// The instruction is a near conditional jump.
1053 /// The instruction is a call-like far transfer.
1054 /// E.g. SYSCALL, SYSENTER, or FAR CALL.
1056 /// The instruction is a return-like far transfer.
1057 /// E.g. SYSRET, SYSEXIT, IRET, or FAR RET.
1059 /// The instruction is a jump-like far transfer.
1060 /// E.g. FAR JMP.
1063
1064/// Watchpoint Kind.
1065///
1066/// Indicates what types of events cause the watchpoint to fire. Used by Native
1067/// *Protocol-related classes.
1068FLAGS_ENUM(WatchpointKind){eWatchpointKindWrite = (1u << 0),
1069 eWatchpointKindRead = (1u << 1)};
1070
1079
1080/// Used with SBHostOS::GetLLDBPath (lldb::PathType) to find files that are
1081/// related to LLDB on the current host machine. Most files are
1082/// relative to LLDB or are in known locations.
1084 ePathTypeLLDBShlibDir, ///< The directory where the lldb.so (unix) or LLDB
1085 ///< mach-o file in LLDB.framework (MacOSX) exists
1086 ePathTypeSupportExecutableDir, ///< Find LLDB support executable directory
1087 ///< (debugserver, etc)
1088 ePathTypeHeaderDir, ///< Find LLDB header file directory
1089 ePathTypePythonDir, ///< Find Python modules (PYTHONPATH) directory
1090 ePathTypeLLDBSystemPlugins, ///< System plug-ins directory
1091 ePathTypeLLDBUserPlugins, ///< User plug-ins directory
1092 ePathTypeLLDBTempSystemDir, ///< The LLDB temp directory for this system that
1093 ///< will be cleaned up on exit
1094 ePathTypeGlobalLLDBTempSystemDir, ///< The LLDB temp directory for this
1095 ///< system, NOT cleaned up on a process
1096 ///< exit.
1097 ePathTypeClangDir ///< Find path to Clang builtin headers
1099
1100/// Kind of member function.
1101///
1102/// Used by the type system.
1104 eMemberFunctionKindUnknown = 0, ///< Not sure what the type of this is
1105 eMemberFunctionKindConstructor, ///< A function used to create instances
1106 eMemberFunctionKindDestructor, ///< A function used to tear down existing
1107 ///< instances
1108 eMemberFunctionKindInstanceMethod, ///< A function that applies to a specific
1109 ///< instance
1110 eMemberFunctionKindStaticMethod ///< A function that applies to a type rather
1111 ///< than any instance
1113
1114/// String matching algorithm used by SBTarget.
1121
1122/// Bitmask that describes details about a type.
1123FLAGS_ENUM(TypeFlags){
1124 eTypeHasChildren = (1u << 0), eTypeHasValue = (1u << 1),
1125 eTypeIsArray = (1u << 2), eTypeIsBlock = (1u << 3),
1126 eTypeIsBuiltIn = (1u << 4), eTypeIsClass = (1u << 5),
1127 eTypeIsCPlusPlus = (1u << 6), eTypeIsEnumeration = (1u << 7),
1128 eTypeIsFuncPrototype = (1u << 8), eTypeIsMember = (1u << 9),
1129 eTypeIsObjC = (1u << 10), eTypeIsPointer = (1u << 11),
1130 eTypeIsReference = (1u << 12), eTypeIsStructUnion = (1u << 13),
1131 eTypeIsTemplate = (1u << 14), eTypeIsTypedef = (1u << 15),
1132 eTypeIsVector = (1u << 16), eTypeIsScalar = (1u << 17),
1133 eTypeIsInteger = (1u << 18), eTypeIsFloat = (1u << 19),
1134 eTypeIsComplex = (1u << 20), eTypeIsSigned = (1u << 21),
1135 eTypeInstanceIsPointer = (1u << 22)};
1136
1137FLAGS_ENUM(CommandFlags){
1138 /// eCommandRequiresTarget
1139 ///
1140 /// Ensures a valid target is contained in m_exe_ctx prior to executing the
1141 /// command. If a target doesn't exist or is invalid, the command will fail
1142 /// and CommandObject::GetInvalidTargetDescription() will be returned as the
1143 /// error. CommandObject subclasses can override the virtual function for
1144 /// GetInvalidTargetDescription() to provide custom strings when needed.
1145 eCommandRequiresTarget = (1u << 0),
1146 /// eCommandRequiresProcess
1147 ///
1148 /// Ensures a valid process is contained in m_exe_ctx prior to executing the
1149 /// command. If a process doesn't exist or is invalid, the command will fail
1150 /// and CommandObject::GetInvalidProcessDescription() will be returned as
1151 /// the error. CommandObject subclasses can override the virtual function
1152 /// for GetInvalidProcessDescription() to provide custom strings when
1153 /// needed.
1154 eCommandRequiresProcess = (1u << 1),
1155 /// eCommandRequiresThread
1156 ///
1157 /// Ensures a valid thread is contained in m_exe_ctx prior to executing the
1158 /// command. If a thread doesn't exist or is invalid, the command will fail
1159 /// and CommandObject::GetInvalidThreadDescription() will be returned as the
1160 /// error. CommandObject subclasses can override the virtual function for
1161 /// GetInvalidThreadDescription() to provide custom strings when needed.
1162 eCommandRequiresThread = (1u << 2),
1163 /// eCommandRequiresFrame
1164 ///
1165 /// Ensures a valid frame is contained in m_exe_ctx prior to executing the
1166 /// command. If a frame doesn't exist or is invalid, the command will fail
1167 /// and CommandObject::GetInvalidFrameDescription() will be returned as the
1168 /// error. CommandObject subclasses can override the virtual function for
1169 /// GetInvalidFrameDescription() to provide custom strings when needed.
1170 eCommandRequiresFrame = (1u << 3),
1171 /// eCommandRequiresRegContext
1172 ///
1173 /// Ensures a valid register context (from the selected frame if there is a
1174 /// frame in m_exe_ctx, or from the selected thread from m_exe_ctx) is
1175 /// available from m_exe_ctx prior to executing the command. If a target
1176 /// doesn't exist or is invalid, the command will fail and
1177 /// CommandObject::GetInvalidRegContextDescription() will be returned as the
1178 /// error. CommandObject subclasses can override the virtual function for
1179 /// GetInvalidRegContextDescription() to provide custom strings when needed.
1180 eCommandRequiresRegContext = (1u << 4),
1181 /// eCommandTryTargetAPILock
1182 ///
1183 /// Attempts to acquire the target lock if a target is selected in the
1184 /// command interpreter. If the command object fails to acquire the API
1185 /// lock, the command will fail with an appropriate error message.
1186 eCommandTryTargetAPILock = (1u << 5),
1187 /// eCommandProcessMustBeLaunched
1188 ///
1189 /// Verifies that there is a launched process in m_exe_ctx, if there isn't,
1190 /// the command will fail with an appropriate error message.
1191 eCommandProcessMustBeLaunched = (1u << 6),
1192 /// eCommandProcessMustBePaused
1193 ///
1194 /// Verifies that there is a paused process in m_exe_ctx, if there isn't,
1195 /// the command will fail with an appropriate error message.
1196 eCommandProcessMustBePaused = (1u << 7),
1197 /// eCommandProcessMustBeTraced
1198 ///
1199 /// Verifies that the process is being traced by a Trace plug-in, if it
1200 /// isn't the command will fail with an appropriate error message.
1201 eCommandProcessMustBeTraced = (1u << 8)};
1202
1203/// Whether a summary should cap how much data it returns to users or not.
1206 eTypeSummaryUncapped = false
1208
1209/// The result from a command interpreter run.
1211 /// Command interpreter finished successfully.
1213 /// Stopped because the corresponding option was set and the inferior
1214 /// crashed.
1216 /// Stopped because the corresponding option was set and a command returned
1217 /// an error.
1219 /// Stopped because quit was requested.
1221};
1222
1223// Style of core file to create when calling SaveCore.
1230};
1231
1232/// Events that might happen during a trace session.
1234 /// Tracing was disabled for some time due to a software trigger.
1236 /// Tracing was disable for some time due to a hardware trigger.
1238 /// Event due to CPU change for a thread. This event is also fired when
1239 /// suddenly it's not possible to identify the cpu of a given thread.
1241 /// Event due to a CPU HW clock tick.
1243 /// The underlying tracing technology emitted a synchronization event used by
1244 /// trace processors.
1246};
1247
1248// Enum used to identify which kind of item a \a TraceCursor is pointing at
1253};
1254
1255/// Enum to indicate the reference point when invoking
1256/// \a TraceCursor::Seek().
1257/// The following values are inspired by \a std::istream::seekg.
1259 /// The beginning of the trace, i.e the oldest item.
1261 /// The current position in the trace.
1263 /// The end of the trace, i.e the most recent item.
1266
1267/// Enum to control the verbosity level of `dwim-print` execution.
1269 /// Run `dwim-print` with no verbosity.
1271 /// Print a message when `dwim-print` uses `expression` evaluation.
1273 /// Always print a message indicating how `dwim-print` is evaluating its
1274 /// expression.
1276};
1277
1280 ///< Watchpoint was created watching a variable
1282 ///< Watchpoint was created watching the result of an expression that was
1283 ///< evaluated at creation time.
1285};
1286
1290 eDiskFileCompletion = (1ul << 1),
1292 eSymbolCompletion = (1ul << 3),
1293 eModuleCompletion = (1ul << 4),
1294 eSettingsNameCompletion = (1ul << 5),
1296 eArchitectureCompletion = (1ul << 7),
1298 eRegisterCompletion = (1ul << 9),
1300 eProcessPluginCompletion = (1ul << 11),
1302 eTypeLanguageCompletion = (1ul << 13),
1304 eModuleUUIDCompletion = (1ul << 15),
1306 eThreadIndexCompletion = (1ul << 17),
1308 eBreakpointNameCompletion = (1ul << 19),
1310 eProcessNameCompletion = (1ul << 21),
1312 eRemoteDiskDirectoryCompletion = (1ul << 23),
1314 eCustomCompletion = (1ul << 25),
1315 eThreadIDCompletion = (1ul << 26),
1316 // This last enum element is just for input validation.
1317 // Add new completions before this element,
1318 // and then increment eTerminatorCompletion's shift value
1319 eTerminatorCompletion = (1ul << 27)
1321
1322/// Specifies if children need to be re-computed
1323/// after a call to \ref SyntheticChildrenFrontEnd::Update.
1325 eRefetch = 0, ///< Children need to be recomputed dynamically.
1326
1327 eReuse = 1, ///< Children did not change and don't need to be recomputed;
1328 ///< re-use what we computed the last time we called Update.
1329};
1330
1335};
1336
1337/// Used in the SBProcess AddressMask/FixAddress methods.
1344
1345/// Used in the SBProcess AddressMask/FixAddress methods.
1351};
1352
1353/// Used by the debugger to indicate which events are being broadcasted.
1356 eBroadcastBitWarning = (1 << 1),
1358 eBroadcastSymbolChange = (1 << 3),
1360};
1361
1362/// Used for expressing severity in logs and diagnostics.
1366 eSeverityInfo, // Equivalent to Remark used in clang.
1367};
1368
1369} // namespace lldb
1370
1371#endif // LLDB_LLDB_ENUMERATIONS_H
#define LLDB_MARK_AS_BITMASK_ENUM(Enum)
#define FLAGS_ENUM(Name)
Definition: SBAddress.h:15
@ 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)
@ eFrameIndexCompletion
@ eDisassemblyFlavorCompletion
@ eVariablePathCompletion
@ eDiskDirectoryCompletion
@ eTypeCategoryNameCompletion
@ ePlatformPluginCompletion
@ eSourceFileCompletion
@ eStopHookIDCompletion
@ eWatchpointIDCompletion
@ eRemoteDiskFileCompletion
@ eBreakpointCompletion
@ eProcessIDCompletion
@ eThreadIDCompletion
TypeSummaryCapping
Whether a summary should cap how much data it returns to users or not.
@ eTypeSummaryUncapped
@ eTypeSummaryCapped
ScriptLanguage
Script interpreter types.
@ eScriptLanguageUnknown
@ eScriptLanguageLua
@ eScriptLanguageDefault
@ eScriptLanguageNone
@ eScriptLanguagePython
MatchType
String matching algorithm used by SBTarget.
@ eMatchTypeRegexInsensitive
@ eMatchTypeStartsWith
ExpressionEvaluationPhase
Expression Evaluation Stages.
@ eExpressionEvaluationComplete
@ eExpressionEvaluationParse
@ eExpressionEvaluationExecution
@ eExpressionEvaluationIRGen
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
@ eBroadcastBitProgress
@ eBroadcastBitError
BasicType
Basic types enumeration for the public API SBType::GetBasicType().
@ eBasicTypeUnsignedShort
@ eBasicTypeSignedChar
@ eBasicTypeUnsignedInt128
@ eBasicTypeFloatComplex
@ eBasicTypeNullPtr
@ eBasicTypeObjCSel
@ eBasicTypeUnsignedWChar
@ eBasicTypeInvalid
@ eBasicTypeUnsignedLong
@ eBasicTypeDouble
@ eBasicTypeInt128
@ eBasicTypeLongDoubleComplex
@ eBasicTypeSignedWChar
@ eBasicTypeChar16
@ eBasicTypeUnsignedChar
@ eBasicTypeUnsignedLongLong
@ eBasicTypeDoubleComplex
@ eBasicTypeLongDouble
@ eBasicTypeChar32
@ eBasicTypeObjCID
@ eBasicTypeUnsignedInt
@ eBasicTypeLongLong
@ eBasicTypeObjCClass
@ eSaveCoreStackOnly
@ eSaveCoreDirtyOnly
@ eSaveCoreCustomOnly
@ eSaveCoreUnspecified
@ 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
Watchpoint was created watching a variable.
@ eWatchPointValueKindExpression
@ eWatchPointValueKindVariable
Watchpoint was created watching the result of an expression that was evaluated at creation time.
AddressMaskRange
Used in the SBProcess AddressMask/FixAddress methods.
@ eAddressMaskRangeAll
@ eAddressMaskRangeLow
@ eAddressMaskRangeAny
@ 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...
@ eFormatUnicode16
@ eFormatAddressInfo
Describe what an address points to (func + offset.
@ eFormatVectorOfUInt128
@ eFormatVectorOfUInt8
@ eFormatComplexFloat
@ eFormatVectorOfFloat32
@ eFormatVectorOfSInt32
@ eFormatUnicode32
@ eFormatVectorOfSInt8
@ eFormatVectorOfUInt16
@ eFormatHexUppercase
@ eFormatVectorOfFloat64
@ eFormatCharPrintable
Only printable characters, '.' if not printable.
@ eFormatComplexInteger
Integer complex type.
@ eFormatVectorOfSInt16
@ eFormatVectorOfUInt32
FrameComparison
This is the return value for frame comparisons.
@ eFrameCompareInvalid
@ eFrameCompareUnknown
@ eFrameCompareSameParent
@ eFrameCompareEqual
@ eFrameCompareOlder
@ eFrameCompareYounger
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.
@ kLastStateType
@ 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.
@ eLanguageTypeZig
@ eLanguageTypeC_plus_plus_03
ISO C++:2003.
@ eLanguageTypeUnknown
Unknown or invalid language value.
@ eLanguageTypeRust
Rust.
@ eLanguageTypeC17
@ eLanguageTypeFortran95
ISO Fortran 95.
@ eLanguageTypeC_sharp
@ eLanguageTypeMojo
@ eLanguageTypeAda2012
@ eLanguageTypeC_plus_plus_17
ISO C++:2017.
@ eLanguageTypeCrystal
@ eLanguageTypeObjC_plus_plus
Objective-C++.
@ eLanguageTypeC_plus_plus_11
ISO C++:2011.
@ eNumLanguageTypes
@ eLanguageTypeSwift
Swift.
@ eLanguageTypeC89
ISO C:1989.
@ eLanguageTypeAda83
ISO Ada:1983.
@ eLanguageTypeJulia
Julia.
@ eLanguageTypeGo
Go.
@ eLanguageTypeFortran77
ISO Fortran 77.
@ eLanguageTypeBLISS
@ 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.
@ eLanguageTypeHIP
@ eLanguageTypeObjC
Objective-C.
@ eLanguageTypeC_plus_plus
ISO C++:1998.
@ eLanguageTypeDylan
Dylan.
@ eLanguageTypeFortran03
ISO Fortran 2003.
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.
@ eErrorTypeInvalid
@ 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.
@ eAccessProtected
FormatterMatchType
Type of match to be performed when looking for a formatter for a data type.
@ eFormatterMatchExact
@ eFormatterMatchRegex
@ 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
@ eSymbolTypeParam
@ eSymbolTypeSourceFile
@ eSymbolTypeException
@ eSymbolTypeInvalid
@ eSymbolTypeVariable
@ eSymbolTypeAbsolute
@ eSymbolTypeAdditional
When symbols take more than one entry, the extra entries get this type.
@ eSymbolTypeInstrumentation
@ eSymbolTypeLocal
@ eSymbolTypeHeaderFile
@ eSymbolTypeBlock
@ eSymbolTypeCommonBlock
@ eSymbolTypeCompiler
@ eSymbolTypeLineHeader
@ eSymbolTypeObjCIVar
@ eSymbolTypeLineEntry
@ eSymbolTypeRuntime
@ eSymbolTypeScopeBegin
@ eSymbolTypeScopeEnd
Encoding
Register encoding definitions.
@ eEncodingIEEE754
float
@ eEncodingVector
vector registers
@ eEncodingUint
unsigned integer
@ eEncodingInvalid
@ eEncodingSint
signed integer
InstrumentationRuntimeType
@ eInstrumentationRuntimeTypeThreadSanitizer
@ eInstrumentationRuntimeTypeMainThreadChecker
@ eInstrumentationRuntimeTypeLibsanitizersAsan
@ eInstrumentationRuntimeTypeAddressSanitizer
@ eNumInstrumentationRuntimeTypes
@ eInstrumentationRuntimeTypeUndefinedBehaviorSanitizer
@ eInstrumentationRuntimeTypeSwiftRuntimeReporting
@ eStopShowColumnAnsi
@ eStopShowColumnCaret
@ eStopShowColumnNone
@ eStopShowColumnAnsiOrCaret
ReturnStatus
Command Return Status Types.
@ eReturnStatusStarted
@ eReturnStatusSuccessContinuingResult
@ eReturnStatusFailed
@ eReturnStatusSuccessContinuingNoResult
@ eReturnStatusQuit
@ eReturnStatusSuccessFinishResult
@ eReturnStatusInvalid
@ eReturnStatusSuccessFinishNoResult
QueueKind
Queue type.
@ eQueueKindConcurrent
@ eArgTypeSEDStylePair
@ eArgTypeExpressionPath
@ eArgTypeBreakpointIDRange
@ eArgTypePythonFunction
@ eArgTypePermissionsNumber
@ eArgTypeOneLiner
@ eArgTypeNumberPerLine
@ eArgTypePermissionsString
@ eArgTypeLogCategory
@ eArgTypeDescriptionVerbosity
@ eArgTypeOldPathPrefix
@ eArgTypeEndAddress
@ eArgTypeTargetID
@ eArgTypeArchitecture
@ eArgTypeProcessName
@ eArgTypeShlibName
@ eArgTypeGDBFormat
@ eArgTypeSettingKey
@ eArgTypeBreakpointID
@ eArgTypeThreadID
@ eArgTypeByteSize
@ eArgTypeThreadIndex
@ eArgTypeSearchWord
@ eArgTypeExprFormat
@ eArgTypeNewPathPrefix
@ eArgTypeFilename
@ eArgTypeExpression
@ eArgTypeStartAddress
@ eArgTypeLogHandler
@ eArgTypeRemotePath
@ eArgTypeSettingPrefix
@ eArgTypeThreadName
@ eArgTypeColumnNum
@ eArgTypePythonClass
@ eArgTypeFileLineColumn
@ eArgTypeFullName
@ eArgTypeCommandName
@ eArgTypeSummaryString
@ eArgTypeFrameIndex
@ eArgTypePythonScript
@ eArgTypeAliasName
@ eArgTypeRecognizerID
@ eArgTypeWatchpointID
@ eArgTypeLogChannel
@ eArgTypeCPUFeatures
@ eArgTypeFunctionOrSymbol
@ eArgTypeRemoteFilename
@ eArgTypeSettingIndex
@ eArgTypeConnectURL
@ eArgTypeSettingVariableName
@ eArgTypeSourceFile
@ eArgTypeLanguage
@ eArgTypeDisassemblyFlavor
@ eArgTypeRegisterName
@ eArgTypeNumLines
@ eArgTypeBreakpointName
@ eArgTypeQueueName
@ eArgTypeTypeName
@ eArgTypePlatform
@ eArgTypeScriptedCommandSynchronicity
@ eArgTypeCompletionType
@ eArgTypeHelpText
@ eArgTypeWatchpointIDRange
@ eArgTypeSaveCoreStyle
@ eArgTypeSelector
@ eArgTypeRegularExpression
@ eArgTypeScriptLang
@ eArgTypeUnsignedInteger
@ eArgTypeSortOrder
@ eArgTypeModuleUUID
@ eArgTypeWatchType
@ eArgTypeFunctionName
@ eArgTypeAliasOptions
@ eArgTypeDirectoryName
@ eArgTypeAddressOrExpression
@ eArgTypeUnixSignal
@ eArgTypeClassName
@ eArgTypeStopHookID
ByteOrder
Byte ordering definitions.
@ eByteOrderInvalid
@ eByteOrderLittle
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.
@ 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
@ eSearchDepthTarget
@ eSearchDepthAddress
@ eSearchDepthFunction
@ kLastSearchDepthKind
@ eSearchDepthBlock
@ eSearchDepthModule
@ eSearchDepthCompUnit
@ eGdbSignalBadAccess
@ eGdbSignalBreakpoint
@ eGdbSignalArithmetic
@ eGdbSignalSoftware
@ eGdbSignalEmulation
@ eGdbSignalBadInstruction
@ eTraceItemKindInstruction
@ eTraceItemKindEvent
@ eTraceItemKindError
StopReason
Thread stop reasons.
@ eStopReasonInstrumentation
@ eStopReasonPlanComplete
@ eStopReasonTrace
@ eStopReasonBreakpoint
@ eStopReasonExec
Program was re-exec'ed.
@ eStopReasonVForkDone
@ eStopReasonInterrupt
Thread requested interrupt.
@ eStopReasonProcessorTrace
@ eStopReasonThreadExiting
@ eStopReasonException
@ eStopReasonInvalid
@ eStopReasonWatchpoint
@ eStopReasonVFork
@ eStopReasonSignal
AddressMaskType
Used in the SBProcess AddressMask/FixAddress methods.
@ eAddressMaskTypeData
@ eAddressMaskTypeAll
@ eAddressMaskTypeAny
@ eAddressMaskTypeCode
@ eDynamicDontRunTarget
@ eDynamicCanRunTarget
@ eNoDynamicValues
@ eStructuredDataTypeFloat
@ eStructuredDataTypeDictionary
@ eStructuredDataTypeInvalid
@ eStructuredDataTypeInteger
@ eStructuredDataTypeGeneric
@ eStructuredDataTypeArray
@ eStructuredDataTypeSignedInteger
@ eStructuredDataTypeUnsignedInteger
@ eStructuredDataTypeNull
@ eStructuredDataTypeBoolean
@ eStructuredDataTypeString
@ eSectionTypeDWARFDebugStrOffsets
@ eSectionTypeELFDynamicSymbols
Elf SHT_DYNSYM section.
@ eSectionTypeData
@ eSectionTypeInvalid
@ eSectionTypeDWARFDebugPubNames
@ eSectionTypeDataObjCCFStrings
Objective-C const CFString/NSString objects.
@ eSectionTypeData16
@ 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
@ eSectionTypeOther
@ eSectionTypeLLDBFormatters
@ eSectionTypeDWARFDebugNames
DWARF v5 .debug_names.
@ eSectionTypeDWARFDebugRngLists
DWARF v5 .debug_rnglists.
@ eSectionTypeEHFrame
@ eSectionTypeDWARFDebugStrOffsetsDwo
@ eSectionTypeDWARFDebugMacro
@ eSectionTypeDWARFAppleTypes
@ eSectionTypeDWARFDebugInfo
@ eSectionTypeDWARFDebugTypesDwo
@ eSectionTypeDWARFDebugRanges
@ eSectionTypeDWARFDebugRngListsDwo
@ eSectionTypeLLDBTypeSummaries
@ eSectionTypeGoSymtab
@ eSectionTypeARMexidx
@ eSectionTypeDWARFDebugLine
@ eSectionTypeDWARFDebugPubTypes
@ eSectionTypeDataObjCMessageRefs
Pointer to function pointer + selector.
@ eSectionTypeDWARFDebugTuIndex
@ eSectionTypeData4
@ eSectionTypeDWARFDebugStr
@ eSectionTypeDWARFDebugLineStr
DWARF v5 .debug_line_str.
@ eSectionTypeDWARFDebugLoc
@ eSectionTypeDWARFAppleNames
@ eSectionTypeDataCStringPointers
Pointers to C string data.
@ eSectionTypeDWARFAppleObjC
@ eSectionTypeCode
@ eSectionTypeData8
@ eSectionTypeSwiftModules
@ eSectionTypeDebug
@ eSectionTypeDWARFDebugCuIndex
@ eSectionTypeDWARFDebugAranges
@ eSectionTypeDWARFDebugAbbrevDwo
@ eSectionTypeDWARFGNUDebugAltLink
@ eSectionTypeDWARFDebugStrDwo
@ eSectionTypeDWARFDebugAbbrev
@ eSectionTypeDataPointers
@ eSectionTypeDWARFDebugLocListsDwo
@ eSectionTypeDWARFDebugInfoDwo
@ eSectionTypeDWARFDebugAddr
@ eSectionTypeDataCString
Inlined C string data.
@ eSectionTypeELFSymbolTable
Elf SHT_SYMTAB section.
RunMode
Thread Run Modes.
@ eOnlyDuringStepping
@ eSymbolDownloadBackground
@ eSymbolDownloadForeground
@ eSymbolDownloadOff
@ eValueTypeVTableEntry
function pointer in virtual function table
@ eValueTypeVTable
virtual function table
@ eValueTypeInvalid
@ eValueTypeVariableGlobal
globals variable
@ eValueTypeConstResult
constant result variables
@ 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
InputReaderGranularity
Token size/granularities for Input Readers.
@ eInputReaderGranularityInvalid
@ eInputReaderGranularityAll
@ eInputReaderGranularityWord
@ eInputReaderGranularityByte
@ eInputReaderGranularityLine
QueueItemKind
Queue work item types.
@ eQueueItemKindUnknown
@ eQueueItemKindBlock
@ eQueueItemKindFunction
RegisterKind
Register numbering types.
@ eRegisterKindGeneric
insn ptr reg, stack ptr reg, etc not specific to any particular target
@ kNumRegisterKinds
@ 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.