lldb-enumerations.h revision 3bfaad6baec573ae2facf2f2acae0948c1a422bd
1//===-- lldb-enumerations.h -------------------------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#ifndef LLDB_lldb_enumerations_h_ 11#define LLDB_lldb_enumerations_h_ 12 13namespace lldb { 14 15 //---------------------------------------------------------------------- 16 // Process and Thread States 17 //---------------------------------------------------------------------- 18 typedef enum StateType 19 { 20 eStateInvalid = 0, 21 eStateUnloaded, ///< Process is object is valid, but not currently loaded 22 eStateConnected, ///< Process is connected to remote debug services, but not launched or attached to anything yet 23 eStateAttaching, ///< Process is currently trying to attach 24 eStateLaunching, ///< Process is in the process of launching 25 eStateStopped, ///< Process or thread is stopped and can be examined. 26 eStateRunning, ///< Process or thread is running and can't be examined. 27 eStateStepping, ///< Process or thread is in the process of stepping and can not be examined. 28 eStateCrashed, ///< Process or thread has crashed and can be examined. 29 eStateDetached, ///< Process has been detached and can't be examined. 30 eStateExited, ///< Process has exited and can't be examined. 31 eStateSuspended ///< Process or thread is in a suspended state as far 32 ///< as the debugger is concerned while other processes 33 ///< or threads get the chance to run. 34 } StateType; 35 36 //---------------------------------------------------------------------- 37 // Launch Flags 38 //---------------------------------------------------------------------- 39 typedef enum LaunchFlags 40 { 41 eLaunchFlagNone = 0u, 42 eLaunchFlagExec = (1u << 0), ///< Exec when launching and turn the calling process into a new process 43 eLaunchFlagDebug = (1u << 1), ///< Stop as soon as the process launches to allow the process to be debugged 44 eLaunchFlagStopAtEntry = (1u << 2), ///< Stop at the program entry point instead of auto-continuing when launching or attaching at entry point 45 eLaunchFlagDisableASLR = (1u << 3), ///< Disable Address Space Layout Randomization 46 eLaunchFlagDisableSTDIO = (1u << 4), ///< Disable stdio for inferior process (e.g. for a GUI app) 47 eLaunchFlagLaunchInTTY = (1u << 5), ///< Launch the process in a new TTY if supported by the host 48 eLaunchFlagLaunchInShell= (1u << 6), ///< Launch the process inside a shell to get shell expansion 49 eLaunchFlagLaunchInSeparateProcessGroup = (1u << 7) ///< Launch the process in a separate process group 50 } LaunchFlags; 51 52 //---------------------------------------------------------------------- 53 // Thread Run Modes 54 //---------------------------------------------------------------------- 55 typedef enum RunMode { 56 eOnlyThisThread, 57 eAllThreads, 58 eOnlyDuringStepping 59 } RunMode; 60 61 //---------------------------------------------------------------------- 62 // Byte ordering definitions 63 //---------------------------------------------------------------------- 64 typedef enum ByteOrder 65 { 66 eByteOrderInvalid = 0, 67 eByteOrderBig = 1, 68 eByteOrderPDP = 2, 69 eByteOrderLittle = 4 70 } ByteOrder; 71 72 //---------------------------------------------------------------------- 73 // Register encoding definitions 74 //---------------------------------------------------------------------- 75 typedef enum Encoding 76 { 77 eEncodingInvalid = 0, 78 eEncodingUint, // unsigned integer 79 eEncodingSint, // signed integer 80 eEncodingIEEE754, // float 81 eEncodingVector // vector registers 82 } Encoding; 83 84 //---------------------------------------------------------------------- 85 // Display format definitions 86 //---------------------------------------------------------------------- 87 typedef enum Format 88 { 89 eFormatDefault = 0, 90 eFormatInvalid = 0, 91 eFormatBoolean, 92 eFormatBinary, 93 eFormatBytes, 94 eFormatBytesWithASCII, 95 eFormatChar, 96 eFormatCharPrintable, // Only printable characters, space if not printable 97 eFormatComplex, // Floating point complex type 98 eFormatComplexFloat = eFormatComplex, 99 eFormatCString, // NULL terminated C strings 100 eFormatDecimal, 101 eFormatEnum, 102 eFormatHex, 103 eFormatHexUppercase, 104 eFormatFloat, 105 eFormatOctal, 106 eFormatOSType, // OS character codes encoded into an integer 'PICT' 'text' etc... 107 eFormatUnicode16, 108 eFormatUnicode32, 109 eFormatUnsigned, 110 eFormatPointer, 111 eFormatVectorOfChar, 112 eFormatVectorOfSInt8, 113 eFormatVectorOfUInt8, 114 eFormatVectorOfSInt16, 115 eFormatVectorOfUInt16, 116 eFormatVectorOfSInt32, 117 eFormatVectorOfUInt32, 118 eFormatVectorOfSInt64, 119 eFormatVectorOfUInt64, 120 eFormatVectorOfFloat32, 121 eFormatVectorOfFloat64, 122 eFormatVectorOfUInt128, 123 eFormatComplexInteger, // Integer complex type 124 eFormatCharArray, // Print characters with no single quotes, used for character arrays that can contain non printable characters 125 eFormatAddressInfo, // Describe what an address points to (func + offset with file/line, symbol + offset, data, etc) 126 eFormatHexFloat, // ISO C99 hex float string 127 eFormatInstruction, // Disassemble an opcode 128 eFormatVoid, // Do not print this 129 kNumFormats 130 } Format; 131 132 //---------------------------------------------------------------------- 133 // Description levels for "void GetDescription(Stream *, DescriptionLevel)" calls 134 //---------------------------------------------------------------------- 135 typedef enum DescriptionLevel 136 { 137 eDescriptionLevelBrief = 0, 138 eDescriptionLevelFull, 139 eDescriptionLevelVerbose, 140 kNumDescriptionLevels 141 } DescriptionLevel; 142 143 //---------------------------------------------------------------------- 144 // Script interpreter types 145 //---------------------------------------------------------------------- 146 typedef enum ScriptLanguage 147 { 148 eScriptLanguageNone, 149 eScriptLanguagePython, 150 eScriptLanguageDefault = eScriptLanguagePython 151 } ScriptLanguage; 152 153 //---------------------------------------------------------------------- 154 // Register numbering types 155 //---------------------------------------------------------------------- 156 typedef enum RegisterKind 157 { 158 eRegisterKindGCC = 0, // the register numbers seen in eh_frame 159 eRegisterKindDWARF, // the register numbers seen DWARF 160 eRegisterKindGeneric, // insn ptr reg, stack ptr reg, etc not specific to any particular target 161 eRegisterKindGDB, // the register numbers gdb uses (matches stabs numbers?) 162 eRegisterKindLLDB, // lldb's internal register numbers 163 kNumRegisterKinds 164 } RegisterKind; 165 166 //---------------------------------------------------------------------- 167 // Thread stop reasons 168 //---------------------------------------------------------------------- 169 typedef enum StopReason 170 { 171 eStopReasonInvalid = 0, 172 eStopReasonNone, 173 eStopReasonTrace, 174 eStopReasonBreakpoint, 175 eStopReasonWatchpoint, 176 eStopReasonSignal, 177 eStopReasonException, 178 eStopReasonPlanComplete 179 } StopReason; 180 181 //---------------------------------------------------------------------- 182 // Command Return Status Types 183 //---------------------------------------------------------------------- 184 typedef enum ReturnStatus 185 { 186 eReturnStatusInvalid, 187 eReturnStatusSuccessFinishNoResult, 188 eReturnStatusSuccessFinishResult, 189 eReturnStatusSuccessContinuingNoResult, 190 eReturnStatusSuccessContinuingResult, 191 eReturnStatusStarted, 192 eReturnStatusFailed, 193 eReturnStatusQuit 194 } ReturnStatus; 195 196 197 //---------------------------------------------------------------------- 198 // Connection Status Types 199 //---------------------------------------------------------------------- 200 typedef enum ConnectionStatus 201 { 202 eConnectionStatusSuccess, // Success 203 eConnectionStatusEndOfFile, // End-of-file encountered 204 eConnectionStatusError, // Check GetError() for details 205 eConnectionStatusTimedOut, // Request timed out 206 eConnectionStatusNoConnection, // No connection 207 eConnectionStatusLostConnection // Lost connection while connected to a valid connection 208 } ConnectionStatus; 209 210 typedef enum ErrorType 211 { 212 eErrorTypeInvalid, 213 eErrorTypeGeneric, ///< Generic errors that can be any value. 214 eErrorTypeMachKernel, ///< Mach kernel error codes. 215 eErrorTypePOSIX ///< POSIX error codes. 216 } ErrorType; 217 218 219 typedef enum ValueType 220 { 221 eValueTypeInvalid = 0, 222 eValueTypeVariableGlobal = 1, // globals variable 223 eValueTypeVariableStatic = 2, // static variable 224 eValueTypeVariableArgument = 3, // function argument variables 225 eValueTypeVariableLocal = 4, // function local variables 226 eValueTypeRegister = 5, // stack frame register value 227 eValueTypeRegisterSet = 6, // A collection of stack frame register values 228 eValueTypeConstResult = 7 // constant result variables 229 } ValueType; 230 231 //---------------------------------------------------------------------- 232 // Token size/granularities for Input Readers 233 //---------------------------------------------------------------------- 234 235 typedef enum InputReaderGranularity 236 { 237 eInputReaderGranularityInvalid = 0, 238 eInputReaderGranularityByte, 239 eInputReaderGranularityWord, 240 eInputReaderGranularityLine, 241 eInputReaderGranularityAll 242 } InputReaderGranularity; 243 244 //------------------------------------------------------------------ 245 /// These mask bits allow a common interface for queries that can 246 /// limit the amount of information that gets parsed to only the 247 /// information that is requested. These bits also can indicate what 248 /// actually did get resolved during query function calls. 249 /// 250 /// Each definition corresponds to a one of the member variables 251 /// in this class, and requests that that item be resolved, or 252 /// indicates that the member did get resolved. 253 //------------------------------------------------------------------ 254 typedef enum SymbolContextItem 255 { 256 eSymbolContextTarget = (1u << 0), ///< Set when \a target is requested from a query, or was located in query results 257 eSymbolContextModule = (1u << 1), ///< Set when \a module is requested from a query, or was located in query results 258 eSymbolContextCompUnit = (1u << 2), ///< Set when \a comp_unit is requested from a query, or was located in query results 259 eSymbolContextFunction = (1u << 3), ///< Set when \a function is requested from a query, or was located in query results 260 eSymbolContextBlock = (1u << 4), ///< Set when the deepest \a block is requested from a query, or was located in query results 261 eSymbolContextLineEntry = (1u << 5), ///< Set when \a line_entry is requested from a query, or was located in query results 262 eSymbolContextSymbol = (1u << 6), ///< Set when \a symbol is requested from a query, or was located in query results 263 eSymbolContextEverything = ((eSymbolContextSymbol << 1) - 1u) ///< Indicates to try and lookup everything up during a query. 264 } SymbolContextItem; 265 266 typedef enum Permissions 267 { 268 ePermissionsWritable = (1u << 0), 269 ePermissionsReadable = (1u << 1), 270 ePermissionsExecutable = (1u << 2) 271 } Permissions; 272 273 typedef enum InputReaderAction 274 { 275 eInputReaderActivate, // reader is newly pushed onto the reader stack 276 eInputReaderAsynchronousOutputWritten, // an async output event occurred; the reader may want to do something 277 eInputReaderReactivate, // reader is on top of the stack again after another reader was popped off 278 eInputReaderDeactivate, // another reader was pushed on the stack 279 eInputReaderGotToken, // reader got one of its tokens (granularity) 280 eInputReaderInterrupt, // reader received an interrupt signal (probably from a control-c) 281 eInputReaderEndOfFile, // reader received an EOF char (probably from a control-d) 282 eInputReaderDone // reader was just popped off the stack and is done 283 } InputReaderAction; 284 285 typedef enum BreakpointEventType 286 { 287 eBreakpointEventTypeInvalidType = (1u << 0), 288 eBreakpointEventTypeAdded = (1u << 1), 289 eBreakpointEventTypeRemoved = (1u << 2), 290 eBreakpointEventTypeLocationsAdded = (1u << 3), // Locations added doesn't get sent when the breakpoint is created 291 eBreakpointEventTypeLocationsRemoved = (1u << 4), 292 eBreakpointEventTypeLocationsResolved = (1u << 5), 293 eBreakpointEventTypeEnabled = (1u << 6), 294 eBreakpointEventTypeDisabled = (1u << 7), 295 eBreakpointEventTypeCommandChanged = (1u << 8), 296 eBreakpointEventTypeConditionChanged = (1u << 9), 297 eBreakpointEventTypeIgnoreChanged = (1u << 10), 298 eBreakpointEventTypeThreadChanged = (1u << 11) 299 } BreakpointEventType; 300 301 302 //---------------------------------------------------------------------- 303 /// Programming language type. 304 /// 305 /// These enumerations use the same language enumerations as the DWARF 306 /// specification for ease of use and consistency. 307 /// The enum -> string code is in LanguageRuntime.cpp, don't change this 308 /// table without updating that code as well. 309 //---------------------------------------------------------------------- 310 typedef enum LanguageType 311 { 312 eLanguageTypeUnknown = 0x0000, ///< Unknown or invalid language value. 313 eLanguageTypeC89 = 0x0001, ///< ISO C:1989. 314 eLanguageTypeC = 0x0002, ///< Non-standardized C, such as K&R. 315 eLanguageTypeAda83 = 0x0003, ///< ISO Ada:1983. 316 eLanguageTypeC_plus_plus = 0x0004, ///< ISO C++:1998. 317 eLanguageTypeCobol74 = 0x0005, ///< ISO Cobol:1974. 318 eLanguageTypeCobol85 = 0x0006, ///< ISO Cobol:1985. 319 eLanguageTypeFortran77 = 0x0007, ///< ISO Fortran 77. 320 eLanguageTypeFortran90 = 0x0008, ///< ISO Fortran 90. 321 eLanguageTypePascal83 = 0x0009, ///< ISO Pascal:1983. 322 eLanguageTypeModula2 = 0x000a, ///< ISO Modula-2:1996. 323 eLanguageTypeJava = 0x000b, ///< Java. 324 eLanguageTypeC99 = 0x000c, ///< ISO C:1999. 325 eLanguageTypeAda95 = 0x000d, ///< ISO Ada:1995. 326 eLanguageTypeFortran95 = 0x000e, ///< ISO Fortran 95. 327 eLanguageTypePLI = 0x000f, ///< ANSI PL/I:1976. 328 eLanguageTypeObjC = 0x0010, ///< Objective-C. 329 eLanguageTypeObjC_plus_plus = 0x0011, ///< Objective-C++. 330 eLanguageTypeUPC = 0x0012, ///< Unified Parallel C. 331 eLanguageTypeD = 0x0013, ///< D. 332 eLanguageTypePython = 0x0014 ///< Python. 333 } LanguageType; 334 335 typedef enum DynamicValueType 336 { 337 eNoDynamicValues = 0, 338 eDynamicCanRunTarget = 1, 339 eDynamicDontRunTarget = 2 340 } DynamicValueType; 341 342 typedef enum AccessType 343 { 344 eAccessNone, 345 eAccessPublic, 346 eAccessPrivate, 347 eAccessProtected, 348 eAccessPackage 349 } AccessType; 350 351 typedef enum CommandArgumentType 352 { 353 eArgTypeAddress = 0, 354 eArgTypeAliasName, 355 eArgTypeAliasOptions, 356 eArgTypeArchitecture, 357 eArgTypeBoolean, 358 eArgTypeBreakpointID, 359 eArgTypeBreakpointIDRange, 360 eArgTypeByteSize, 361 eArgTypeClassName, 362 eArgTypeCommandName, 363 eArgTypeCount, 364 eArgTypeEndAddress, 365 eArgTypeExpression, 366 eArgTypeExpressionPath, 367 eArgTypeExprFormat, 368 eArgTypeFilename, 369 eArgTypeFormat, 370 eArgTypeFrameIndex, 371 eArgTypeFullName, 372 eArgTypeFunctionName, 373 eArgTypeFunctionOrSymbol, 374 eArgTypeGDBFormat, 375 eArgTypeIndex, 376 eArgTypeLanguage, 377 eArgTypeLineNum, 378 eArgTypeLogCategory, 379 eArgTypeLogChannel, 380 eArgTypeMethod, 381 eArgTypeName, 382 eArgTypeNewPathPrefix, 383 eArgTypeNumLines, 384 eArgTypeNumberPerLine, 385 eArgTypeOffset, 386 eArgTypeOldPathPrefix, 387 eArgTypeOneLiner, 388 eArgTypePath, 389 eArgTypePid, 390 eArgTypePlugin, 391 eArgTypeProcessName, 392 eArgTypePythonClass, 393 eArgTypePythonFunction, 394 eArgTypePythonScript, 395 eArgTypeQueueName, 396 eArgTypeRegisterName, 397 eArgTypeRegularExpression, 398 eArgTypeRunArgs, 399 eArgTypeRunMode, 400 eArgTypeScriptedCommandSynchronicity, 401 eArgTypeScriptLang, 402 eArgTypeSearchWord, 403 eArgTypeSelector, 404 eArgTypeSettingIndex, 405 eArgTypeSettingKey, 406 eArgTypeSettingPrefix, 407 eArgTypeSettingVariableName, 408 eArgTypeShlibName, 409 eArgTypeSourceFile, 410 eArgTypeSortOrder, 411 eArgTypeStartAddress, 412 eArgTypeSummaryString, 413 eArgTypeSymbol, 414 eArgTypeThreadID, 415 eArgTypeThreadIndex, 416 eArgTypeThreadName, 417 eArgTypeUnsignedInteger, 418 eArgTypeUnixSignal, 419 eArgTypeVarName, 420 eArgTypeValue, 421 eArgTypeWidth, 422 eArgTypeNone, 423 eArgTypePlatform, 424 eArgTypeWatchpointID, 425 eArgTypeWatchpointIDRange, 426 eArgTypeWatchType, 427 eArgTypeLastArg // Always keep this entry as the last entry in this enumeration!! 428 } CommandArgumentType; 429 430 //---------------------------------------------------------------------- 431 // Symbol types 432 //---------------------------------------------------------------------- 433 typedef enum SymbolType 434 { 435 eSymbolTypeAny = 0, 436 eSymbolTypeInvalid = 0, 437 eSymbolTypeAbsolute, 438 eSymbolTypeCode, 439 eSymbolTypeData, 440 eSymbolTypeTrampoline, 441 eSymbolTypeRuntime, 442 eSymbolTypeException, 443 eSymbolTypeSourceFile, 444 eSymbolTypeHeaderFile, 445 eSymbolTypeObjectFile, 446 eSymbolTypeCommonBlock, 447 eSymbolTypeBlock, 448 eSymbolTypeLocal, 449 eSymbolTypeParam, 450 eSymbolTypeVariable, 451 eSymbolTypeVariableType, 452 eSymbolTypeLineEntry, 453 eSymbolTypeLineHeader, 454 eSymbolTypeScopeBegin, 455 eSymbolTypeScopeEnd, 456 eSymbolTypeAdditional, // When symbols take more than one entry, the extra entries get this type 457 eSymbolTypeCompiler, 458 eSymbolTypeInstrumentation, 459 eSymbolTypeUndefined, 460 eSymbolTypeObjCClass, 461 eSymbolTypeObjCMetaClass, 462 eSymbolTypeObjCIVar 463 } SymbolType; 464 465 typedef enum SectionType 466 { 467 eSectionTypeInvalid, 468 eSectionTypeCode, 469 eSectionTypeContainer, // The section contains child sections 470 eSectionTypeData, 471 eSectionTypeDataCString, // Inlined C string data 472 eSectionTypeDataCStringPointers, // Pointers to C string data 473 eSectionTypeDataSymbolAddress, // Address of a symbol in the symbol table 474 eSectionTypeData4, 475 eSectionTypeData8, 476 eSectionTypeData16, 477 eSectionTypeDataPointers, 478 eSectionTypeDebug, 479 eSectionTypeZeroFill, 480 eSectionTypeDataObjCMessageRefs, // Pointer to function pointer + selector 481 eSectionTypeDataObjCCFStrings, // Objective C const CFString/NSString objects 482 eSectionTypeDWARFDebugAbbrev, 483 eSectionTypeDWARFDebugAranges, 484 eSectionTypeDWARFDebugFrame, 485 eSectionTypeDWARFDebugInfo, 486 eSectionTypeDWARFDebugLine, 487 eSectionTypeDWARFDebugLoc, 488 eSectionTypeDWARFDebugMacInfo, 489 eSectionTypeDWARFDebugPubNames, 490 eSectionTypeDWARFDebugPubTypes, 491 eSectionTypeDWARFDebugRanges, 492 eSectionTypeDWARFDebugStr, 493 eSectionTypeDWARFAppleNames, 494 eSectionTypeDWARFAppleTypes, 495 eSectionTypeDWARFAppleNamespaces, 496 eSectionTypeDWARFAppleObjC, 497 eSectionTypeEHFrame, 498 eSectionTypeOther 499 500 } SectionType; 501 502 typedef enum EmulateInstructionOptions 503 { 504 eEmulateInstructionOptionNone = (0u), 505 eEmulateInstructionOptionAutoAdvancePC = (1u << 0), 506 eEmulateInstructionOptionIgnoreConditions = (1u << 1) 507 } EmulateInstructionOptions; 508 509 typedef enum FunctionNameType 510 { 511 eFunctionNameTypeNone = 0u, 512 eFunctionNameTypeAuto = (1u << 1), // Automatically figure out which FunctionNameType 513 // bits to set based on the function name. 514 eFunctionNameTypeFull = (1u << 2), // The function name. 515 // For C this is the same as just the name of the function 516 // For C++ this is the mangled or demangled version of the mangled name. 517 // For ObjC this is the full function signature with the + or 518 // - and the square brackets and the class and selector 519 eFunctionNameTypeBase = (1u << 3), // The function name only, no namespaces or arguments and no class 520 // methods or selectors will be searched. 521 eFunctionNameTypeMethod = (1u << 4), // Find function by method name (C++) with no namespace or arguments 522 eFunctionNameTypeSelector = (1u << 5), // Find function by selector name (ObjC) names 523 eFunctionNameTypeAny = (eFunctionNameTypeFull | 524 eFunctionNameTypeBase | 525 eFunctionNameTypeMethod | 526 eFunctionNameTypeSelector ) 527 } FunctionNameType; 528 529 530 //---------------------------------------------------------------------- 531 // Basic types enumeration for the public API SBType::GetBasicType() 532 //---------------------------------------------------------------------- 533 typedef enum BasicType 534 { 535 eBasicTypeInvalid = 0, 536 eBasicTypeVoid = 1, 537 eBasicTypeChar, 538 eBasicTypeSignedChar, 539 eBasicTypeWChar, 540 eBasicTypeChar16, 541 eBasicTypeChar32, 542 eBasicTypeShort, 543 eBasicTypeUnsignedShort, 544 eBasicTypeInt, 545 eBasicTypeUnsignedInt, 546 eBasicTypeLong, 547 eBasicTypeUnsignedLong, 548 eBasicTypeLongLong, 549 eBasicTypeUnsignedLongLong, 550 eBasicTypeInt128, 551 eBasicTypeUnsignedInt128, 552 eBasicTypeBool, 553 eBasicTypeFloat, 554 eBasicTypeDouble, 555 eBasicTypeLongDouble, 556 eBasicTypeFloatComplex, 557 eBasicTypeDoubleComplex, 558 eBasicTypeLongDoubleComplex, 559 eBasicTypeObjCID, 560 eBasicTypeObjCClass, 561 eBasicTypeObjCSel 562 } BasicType; 563 564 typedef enum TypeClass 565 { 566 eTypeClassInvalid = (0u), 567 eTypeClassArray = (1u << 0), 568 eTypeClassBlockPointer = (1u << 1), 569 eTypeClassBuiltin = (1u << 2), 570 eTypeClassClass = (1u << 3), 571 eTypeClassComplexFloat = (1u << 4), 572 eTypeClassComplexInteger = (1u << 5), 573 eTypeClassEnumeration = (1u << 6), 574 eTypeClassFunction = (1u << 7), 575 eTypeClassMemberPointer = (1u << 8), 576 eTypeClassObjCObject = (1u << 9), 577 eTypeClassObjCInterface = (1u << 10), 578 eTypeClassObjCObjectPointer = (1u << 11), 579 eTypeClassPointer = (1u << 12), 580 eTypeClassReference = (1u << 13), 581 eTypeClassStruct = (1u << 14), 582 eTypeClassTypedef = (1u << 15), 583 eTypeClassUnion = (1u << 16), 584 eTypeClassVector = (1u << 17), 585 // Define the last type class as the MSBit of a 32 bit value 586 eTypeClassOther = (1u << 31), 587 // Define a mask that can be used for any type when finding types 588 eTypeClassAny = (0xffffffffu) 589 }TypeClass; 590 591 typedef enum TemplateArgumentKind 592 { 593 eTemplateArgumentKindNull = 0, 594 eTemplateArgumentKindType, 595 eTemplateArgumentKindDeclaration, 596 eTemplateArgumentKindIntegral, 597 eTemplateArgumentKindTemplate, 598 eTemplateArgumentKindTemplateExpansion, 599 eTemplateArgumentKindExpression, 600 eTemplateArgumentKindPack 601 602 } TemplateArgumentKind; 603 604 //---------------------------------------------------------------------- 605 // Options that can be set for a formatter to alter its behavior 606 // Not all of these are applicable to all formatter types 607 //---------------------------------------------------------------------- 608 typedef enum TypeOptions 609 { 610 eTypeOptionNone = (0u), 611 eTypeOptionCascade = (1u << 0), 612 eTypeOptionSkipPointers = (1u << 1), 613 eTypeOptionSkipReferences = (1u << 2), 614 eTypeOptionHideChildren = (1u << 3), 615 eTypeOptionHideValue = (1u << 4), 616 eTypeOptionShowOneLiner = (1u << 5), 617 eTypeOptionHideNames = (1u << 6) 618 } TypeOptions; 619 620 //---------------------------------------------------------------------- 621 // This is the return value for frame comparisons. When frame A pushes 622 // frame B onto the stack, frame A is OLDER than frame B. 623 //---------------------------------------------------------------------- 624 typedef enum FrameComparison 625 { 626 eFrameCompareInvalid, 627 eFrameCompareUnknown, 628 eFrameCompareEqual, 629 eFrameCompareYounger, 630 eFrameCompareOlder 631 } FrameComparison; 632 633 //---------------------------------------------------------------------- 634 // Address Class 635 // 636 // A way of classifying an address used for disassembling and setting 637 // breakpoints. Many object files can track exactly what parts of their 638 // object files are code, data and other information. This is of course 639 // above and beyond just looking at the section types. For example, code 640 // might contain PC relative data and the object file might be able to 641 // tell us that an address in code is data. 642 //---------------------------------------------------------------------- 643 typedef enum AddressClass 644 { 645 eAddressClassInvalid, 646 eAddressClassUnknown, 647 eAddressClassCode, 648 eAddressClassCodeAlternateISA, 649 eAddressClassData, 650 eAddressClassDebug, 651 eAddressClassRuntime 652 } AddressClass; 653 654} // namespace lldb 655 656 657#endif // LLDB_lldb_enumerations_h_ 658