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