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