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