1254721Semaste//===-- lldb-enumerations.h -------------------------------------*- C++ -*-===// 2254721Semaste// 3254721Semaste// The LLVM Compiler Infrastructure 4254721Semaste// 5254721Semaste// This file is distributed under the University of Illinois Open Source 6254721Semaste// License. See LICENSE.TXT for details. 7254721Semaste// 8254721Semaste//===----------------------------------------------------------------------===// 9254721Semaste 10254721Semaste#ifndef LLDB_lldb_enumerations_h_ 11254721Semaste#define LLDB_lldb_enumerations_h_ 12254721Semaste 13254721Semastenamespace lldb { 14254721Semaste 15254721Semaste //---------------------------------------------------------------------- 16254721Semaste // Process and Thread States 17254721Semaste //---------------------------------------------------------------------- 18254721Semaste typedef enum StateType 19254721Semaste { 20254721Semaste eStateInvalid = 0, 21254721Semaste eStateUnloaded, ///< Process is object is valid, but not currently loaded 22254721Semaste eStateConnected, ///< Process is connected to remote debug services, but not launched or attached to anything yet 23254721Semaste eStateAttaching, ///< Process is currently trying to attach 24254721Semaste eStateLaunching, ///< Process is in the process of launching 25254721Semaste eStateStopped, ///< Process or thread is stopped and can be examined. 26254721Semaste eStateRunning, ///< Process or thread is running and can't be examined. 27254721Semaste eStateStepping, ///< Process or thread is in the process of stepping and can not be examined. 28254721Semaste eStateCrashed, ///< Process or thread has crashed and can be examined. 29254721Semaste eStateDetached, ///< Process has been detached and can't be examined. 30254721Semaste eStateExited, ///< Process has exited and can't be examined. 31254721Semaste eStateSuspended ///< Process or thread is in a suspended state as far 32254721Semaste ///< as the debugger is concerned while other processes 33254721Semaste ///< or threads get the chance to run. 34254721Semaste } StateType; 35254721Semaste 36254721Semaste //---------------------------------------------------------------------- 37254721Semaste // Launch Flags 38254721Semaste //---------------------------------------------------------------------- 39254721Semaste typedef enum LaunchFlags 40254721Semaste { 41254721Semaste eLaunchFlagNone = 0u, 42254721Semaste eLaunchFlagExec = (1u << 0), ///< Exec when launching and turn the calling process into a new process 43254721Semaste eLaunchFlagDebug = (1u << 1), ///< Stop as soon as the process launches to allow the process to be debugged 44254721Semaste eLaunchFlagStopAtEntry = (1u << 2), ///< Stop at the program entry point instead of auto-continuing when launching or attaching at entry point 45254721Semaste eLaunchFlagDisableASLR = (1u << 3), ///< Disable Address Space Layout Randomization 46254721Semaste eLaunchFlagDisableSTDIO = (1u << 4), ///< Disable stdio for inferior process (e.g. for a GUI app) 47254721Semaste eLaunchFlagLaunchInTTY = (1u << 5), ///< Launch the process in a new TTY if supported by the host 48254721Semaste eLaunchFlagLaunchInShell= (1u << 6), ///< Launch the process inside a shell to get shell expansion 49269024Semaste eLaunchFlagLaunchInSeparateProcessGroup = (1u << 7), ///< Launch the process in a separate process group 50269024Semaste eLaunchFlagsDontMonitorProcess = (1u << 8) ///< If you are going to hand the process off (e.g. to debugserver) 51269024Semaste ///< set this flag so lldb & the handee don't race to reap it. 52254721Semaste } LaunchFlags; 53254721Semaste 54254721Semaste //---------------------------------------------------------------------- 55254721Semaste // Thread Run Modes 56254721Semaste //---------------------------------------------------------------------- 57254721Semaste typedef enum RunMode { 58254721Semaste eOnlyThisThread, 59254721Semaste eAllThreads, 60254721Semaste eOnlyDuringStepping 61254721Semaste } RunMode; 62254721Semaste 63254721Semaste //---------------------------------------------------------------------- 64254721Semaste // Byte ordering definitions 65254721Semaste //---------------------------------------------------------------------- 66254721Semaste typedef enum ByteOrder 67254721Semaste { 68254721Semaste eByteOrderInvalid = 0, 69254721Semaste eByteOrderBig = 1, 70254721Semaste eByteOrderPDP = 2, 71254721Semaste eByteOrderLittle = 4 72254721Semaste } ByteOrder; 73254721Semaste 74254721Semaste //---------------------------------------------------------------------- 75254721Semaste // Register encoding definitions 76254721Semaste //---------------------------------------------------------------------- 77254721Semaste typedef enum Encoding 78254721Semaste { 79254721Semaste eEncodingInvalid = 0, 80254721Semaste eEncodingUint, // unsigned integer 81254721Semaste eEncodingSint, // signed integer 82254721Semaste eEncodingIEEE754, // float 83254721Semaste eEncodingVector // vector registers 84254721Semaste } Encoding; 85254721Semaste 86254721Semaste //---------------------------------------------------------------------- 87254721Semaste // Display format definitions 88254721Semaste //---------------------------------------------------------------------- 89254721Semaste typedef enum Format 90254721Semaste { 91254721Semaste eFormatDefault = 0, 92254721Semaste eFormatInvalid = 0, 93254721Semaste eFormatBoolean, 94254721Semaste eFormatBinary, 95254721Semaste eFormatBytes, 96254721Semaste eFormatBytesWithASCII, 97254721Semaste eFormatChar, 98254721Semaste eFormatCharPrintable, // Only printable characters, space if not printable 99254721Semaste eFormatComplex, // Floating point complex type 100254721Semaste eFormatComplexFloat = eFormatComplex, 101254721Semaste eFormatCString, // NULL terminated C strings 102254721Semaste eFormatDecimal, 103254721Semaste eFormatEnum, 104254721Semaste eFormatHex, 105254721Semaste eFormatHexUppercase, 106254721Semaste eFormatFloat, 107254721Semaste eFormatOctal, 108254721Semaste eFormatOSType, // OS character codes encoded into an integer 'PICT' 'text' etc... 109254721Semaste eFormatUnicode16, 110254721Semaste eFormatUnicode32, 111254721Semaste eFormatUnsigned, 112254721Semaste eFormatPointer, 113254721Semaste eFormatVectorOfChar, 114254721Semaste eFormatVectorOfSInt8, 115254721Semaste eFormatVectorOfUInt8, 116254721Semaste eFormatVectorOfSInt16, 117254721Semaste eFormatVectorOfUInt16, 118254721Semaste eFormatVectorOfSInt32, 119254721Semaste eFormatVectorOfUInt32, 120254721Semaste eFormatVectorOfSInt64, 121254721Semaste eFormatVectorOfUInt64, 122254721Semaste eFormatVectorOfFloat32, 123254721Semaste eFormatVectorOfFloat64, 124254721Semaste eFormatVectorOfUInt128, 125254721Semaste eFormatComplexInteger, // Integer complex type 126254721Semaste eFormatCharArray, // Print characters with no single quotes, used for character arrays that can contain non printable characters 127254721Semaste eFormatAddressInfo, // Describe what an address points to (func + offset with file/line, symbol + offset, data, etc) 128254721Semaste eFormatHexFloat, // ISO C99 hex float string 129254721Semaste eFormatInstruction, // Disassemble an opcode 130254721Semaste eFormatVoid, // Do not print this 131254721Semaste kNumFormats 132254721Semaste } Format; 133254721Semaste 134254721Semaste //---------------------------------------------------------------------- 135254721Semaste // Description levels for "void GetDescription(Stream *, DescriptionLevel)" calls 136254721Semaste //---------------------------------------------------------------------- 137254721Semaste typedef enum DescriptionLevel 138254721Semaste { 139254721Semaste eDescriptionLevelBrief = 0, 140254721Semaste eDescriptionLevelFull, 141254721Semaste eDescriptionLevelVerbose, 142254721Semaste eDescriptionLevelInitial, 143254721Semaste kNumDescriptionLevels 144254721Semaste } DescriptionLevel; 145254721Semaste 146254721Semaste //---------------------------------------------------------------------- 147254721Semaste // Script interpreter types 148254721Semaste //---------------------------------------------------------------------- 149254721Semaste typedef enum ScriptLanguage 150254721Semaste { 151254721Semaste eScriptLanguageNone, 152254721Semaste eScriptLanguagePython, 153254721Semaste eScriptLanguageDefault = eScriptLanguagePython 154254721Semaste } ScriptLanguage; 155254721Semaste 156254721Semaste //---------------------------------------------------------------------- 157254721Semaste // Register numbering types 158254721Semaste //---------------------------------------------------------------------- 159254721Semaste typedef enum RegisterKind 160254721Semaste { 161254721Semaste eRegisterKindGCC = 0, // the register numbers seen in eh_frame 162254721Semaste eRegisterKindDWARF, // the register numbers seen DWARF 163254721Semaste eRegisterKindGeneric, // insn ptr reg, stack ptr reg, etc not specific to any particular target 164254721Semaste eRegisterKindGDB, // the register numbers gdb uses (matches stabs numbers?) 165254721Semaste eRegisterKindLLDB, // lldb's internal register numbers 166254721Semaste kNumRegisterKinds 167254721Semaste } RegisterKind; 168254721Semaste 169254721Semaste //---------------------------------------------------------------------- 170254721Semaste // Thread stop reasons 171254721Semaste //---------------------------------------------------------------------- 172254721Semaste typedef enum StopReason 173254721Semaste { 174254721Semaste eStopReasonInvalid = 0, 175254721Semaste eStopReasonNone, 176254721Semaste eStopReasonTrace, 177254721Semaste eStopReasonBreakpoint, 178254721Semaste eStopReasonWatchpoint, 179254721Semaste eStopReasonSignal, 180254721Semaste eStopReasonException, 181254721Semaste eStopReasonExec, // Program was re-exec'ed 182254721Semaste eStopReasonPlanComplete, 183254721Semaste eStopReasonThreadExiting 184254721Semaste } StopReason; 185254721Semaste 186254721Semaste //---------------------------------------------------------------------- 187254721Semaste // Command Return Status Types 188254721Semaste //---------------------------------------------------------------------- 189254721Semaste typedef enum ReturnStatus 190254721Semaste { 191254721Semaste eReturnStatusInvalid, 192254721Semaste eReturnStatusSuccessFinishNoResult, 193254721Semaste eReturnStatusSuccessFinishResult, 194254721Semaste eReturnStatusSuccessContinuingNoResult, 195254721Semaste eReturnStatusSuccessContinuingResult, 196254721Semaste eReturnStatusStarted, 197254721Semaste eReturnStatusFailed, 198254721Semaste eReturnStatusQuit 199254721Semaste } ReturnStatus; 200254721Semaste 201254721Semaste 202254721Semaste //---------------------------------------------------------------------- 203254721Semaste // Connection Status Types 204254721Semaste //---------------------------------------------------------------------- 205254721Semaste typedef enum ConnectionStatus 206254721Semaste { 207254721Semaste eConnectionStatusSuccess, // Success 208254721Semaste eConnectionStatusEndOfFile, // End-of-file encountered 209254721Semaste eConnectionStatusError, // Check GetError() for details 210254721Semaste eConnectionStatusTimedOut, // Request timed out 211254721Semaste eConnectionStatusNoConnection, // No connection 212254721Semaste eConnectionStatusLostConnection // Lost connection while connected to a valid connection 213254721Semaste } ConnectionStatus; 214254721Semaste 215254721Semaste typedef enum ErrorType 216254721Semaste { 217254721Semaste eErrorTypeInvalid, 218254721Semaste eErrorTypeGeneric, ///< Generic errors that can be any value. 219254721Semaste eErrorTypeMachKernel, ///< Mach kernel error codes. 220254721Semaste eErrorTypePOSIX ///< POSIX error codes. 221254721Semaste } ErrorType; 222254721Semaste 223254721Semaste 224254721Semaste typedef enum ValueType 225254721Semaste { 226254721Semaste eValueTypeInvalid = 0, 227254721Semaste eValueTypeVariableGlobal = 1, // globals variable 228254721Semaste eValueTypeVariableStatic = 2, // static variable 229254721Semaste eValueTypeVariableArgument = 3, // function argument variables 230254721Semaste eValueTypeVariableLocal = 4, // function local variables 231254721Semaste eValueTypeRegister = 5, // stack frame register value 232254721Semaste eValueTypeRegisterSet = 6, // A collection of stack frame register values 233254721Semaste eValueTypeConstResult = 7 // constant result variables 234254721Semaste } ValueType; 235254721Semaste 236254721Semaste //---------------------------------------------------------------------- 237254721Semaste // Token size/granularities for Input Readers 238254721Semaste //---------------------------------------------------------------------- 239254721Semaste 240254721Semaste typedef enum InputReaderGranularity 241254721Semaste { 242254721Semaste eInputReaderGranularityInvalid = 0, 243254721Semaste eInputReaderGranularityByte, 244254721Semaste eInputReaderGranularityWord, 245254721Semaste eInputReaderGranularityLine, 246254721Semaste eInputReaderGranularityAll 247254721Semaste } InputReaderGranularity; 248254721Semaste 249254721Semaste //------------------------------------------------------------------ 250254721Semaste /// These mask bits allow a common interface for queries that can 251254721Semaste /// limit the amount of information that gets parsed to only the 252254721Semaste /// information that is requested. These bits also can indicate what 253254721Semaste /// actually did get resolved during query function calls. 254254721Semaste /// 255254721Semaste /// Each definition corresponds to a one of the member variables 256254721Semaste /// in this class, and requests that that item be resolved, or 257254721Semaste /// indicates that the member did get resolved. 258254721Semaste //------------------------------------------------------------------ 259254721Semaste typedef enum SymbolContextItem 260254721Semaste { 261254721Semaste eSymbolContextTarget = (1u << 0), ///< Set when \a target is requested from a query, or was located in query results 262254721Semaste eSymbolContextModule = (1u << 1), ///< Set when \a module is requested from a query, or was located in query results 263254721Semaste eSymbolContextCompUnit = (1u << 2), ///< Set when \a comp_unit is requested from a query, or was located in query results 264254721Semaste eSymbolContextFunction = (1u << 3), ///< Set when \a function is requested from a query, or was located in query results 265254721Semaste eSymbolContextBlock = (1u << 4), ///< Set when the deepest \a block is requested from a query, or was located in query results 266254721Semaste eSymbolContextLineEntry = (1u << 5), ///< Set when \a line_entry is requested from a query, or was located in query results 267254721Semaste eSymbolContextSymbol = (1u << 6), ///< Set when \a symbol is requested from a query, or was located in query results 268254721Semaste eSymbolContextEverything = ((eSymbolContextSymbol << 1) - 1u) ///< Indicates to try and lookup everything up during a query. 269254721Semaste } SymbolContextItem; 270254721Semaste 271254721Semaste typedef enum Permissions 272254721Semaste { 273254721Semaste ePermissionsWritable = (1u << 0), 274254721Semaste ePermissionsReadable = (1u << 1), 275254721Semaste ePermissionsExecutable = (1u << 2) 276254721Semaste } Permissions; 277254721Semaste 278254721Semaste typedef enum InputReaderAction 279254721Semaste { 280254721Semaste eInputReaderActivate, // reader is newly pushed onto the reader stack 281254721Semaste eInputReaderAsynchronousOutputWritten, // an async output event occurred; the reader may want to do something 282254721Semaste eInputReaderReactivate, // reader is on top of the stack again after another reader was popped off 283254721Semaste eInputReaderDeactivate, // another reader was pushed on the stack 284254721Semaste eInputReaderGotToken, // reader got one of its tokens (granularity) 285254721Semaste eInputReaderInterrupt, // reader received an interrupt signal (probably from a control-c) 286254721Semaste eInputReaderEndOfFile, // reader received an EOF char (probably from a control-d) 287254721Semaste eInputReaderDone // reader was just popped off the stack and is done 288254721Semaste } InputReaderAction; 289254721Semaste 290254721Semaste typedef enum BreakpointEventType 291254721Semaste { 292254721Semaste eBreakpointEventTypeInvalidType = (1u << 0), 293254721Semaste eBreakpointEventTypeAdded = (1u << 1), 294254721Semaste eBreakpointEventTypeRemoved = (1u << 2), 295254721Semaste eBreakpointEventTypeLocationsAdded = (1u << 3), // Locations added doesn't get sent when the breakpoint is created 296254721Semaste eBreakpointEventTypeLocationsRemoved = (1u << 4), 297254721Semaste eBreakpointEventTypeLocationsResolved = (1u << 5), 298254721Semaste eBreakpointEventTypeEnabled = (1u << 6), 299254721Semaste eBreakpointEventTypeDisabled = (1u << 7), 300254721Semaste eBreakpointEventTypeCommandChanged = (1u << 8), 301254721Semaste eBreakpointEventTypeConditionChanged = (1u << 9), 302254721Semaste eBreakpointEventTypeIgnoreChanged = (1u << 10), 303254721Semaste eBreakpointEventTypeThreadChanged = (1u << 11) 304254721Semaste } BreakpointEventType; 305254721Semaste 306254721Semaste typedef enum WatchpointEventType 307254721Semaste { 308254721Semaste eWatchpointEventTypeInvalidType = (1u << 0), 309254721Semaste eWatchpointEventTypeAdded = (1u << 1), 310254721Semaste eWatchpointEventTypeRemoved = (1u << 2), 311254721Semaste eWatchpointEventTypeEnabled = (1u << 6), 312254721Semaste eWatchpointEventTypeDisabled = (1u << 7), 313254721Semaste eWatchpointEventTypeCommandChanged = (1u << 8), 314254721Semaste eWatchpointEventTypeConditionChanged = (1u << 9), 315254721Semaste eWatchpointEventTypeIgnoreChanged = (1u << 10), 316254721Semaste eWatchpointEventTypeThreadChanged = (1u << 11), 317254721Semaste eWatchpointEventTypeTypeChanged = (1u << 12) 318254721Semaste } WatchpointEventType; 319254721Semaste 320254721Semaste 321254721Semaste //---------------------------------------------------------------------- 322254721Semaste /// Programming language type. 323254721Semaste /// 324254721Semaste /// These enumerations use the same language enumerations as the DWARF 325254721Semaste /// specification for ease of use and consistency. 326254721Semaste /// The enum -> string code is in LanguageRuntime.cpp, don't change this 327254721Semaste /// table without updating that code as well. 328254721Semaste //---------------------------------------------------------------------- 329254721Semaste typedef enum LanguageType 330254721Semaste { 331254721Semaste eLanguageTypeUnknown = 0x0000, ///< Unknown or invalid language value. 332254721Semaste eLanguageTypeC89 = 0x0001, ///< ISO C:1989. 333254721Semaste eLanguageTypeC = 0x0002, ///< Non-standardized C, such as K&R. 334254721Semaste eLanguageTypeAda83 = 0x0003, ///< ISO Ada:1983. 335254721Semaste eLanguageTypeC_plus_plus = 0x0004, ///< ISO C++:1998. 336254721Semaste eLanguageTypeCobol74 = 0x0005, ///< ISO Cobol:1974. 337254721Semaste eLanguageTypeCobol85 = 0x0006, ///< ISO Cobol:1985. 338254721Semaste eLanguageTypeFortran77 = 0x0007, ///< ISO Fortran 77. 339254721Semaste eLanguageTypeFortran90 = 0x0008, ///< ISO Fortran 90. 340254721Semaste eLanguageTypePascal83 = 0x0009, ///< ISO Pascal:1983. 341254721Semaste eLanguageTypeModula2 = 0x000a, ///< ISO Modula-2:1996. 342254721Semaste eLanguageTypeJava = 0x000b, ///< Java. 343254721Semaste eLanguageTypeC99 = 0x000c, ///< ISO C:1999. 344254721Semaste eLanguageTypeAda95 = 0x000d, ///< ISO Ada:1995. 345254721Semaste eLanguageTypeFortran95 = 0x000e, ///< ISO Fortran 95. 346254721Semaste eLanguageTypePLI = 0x000f, ///< ANSI PL/I:1976. 347254721Semaste eLanguageTypeObjC = 0x0010, ///< Objective-C. 348254721Semaste eLanguageTypeObjC_plus_plus = 0x0011, ///< Objective-C++. 349254721Semaste eLanguageTypeUPC = 0x0012, ///< Unified Parallel C. 350254721Semaste eLanguageTypeD = 0x0013, ///< D. 351254721Semaste eLanguageTypePython = 0x0014, ///< Python. 352254721Semaste eNumLanguageTypes 353254721Semaste } LanguageType; 354254721Semaste 355254721Semaste typedef enum DynamicValueType 356254721Semaste { 357254721Semaste eNoDynamicValues = 0, 358254721Semaste eDynamicCanRunTarget = 1, 359254721Semaste eDynamicDontRunTarget = 2 360254721Semaste } DynamicValueType; 361254721Semaste 362254721Semaste typedef enum AccessType 363254721Semaste { 364254721Semaste eAccessNone, 365254721Semaste eAccessPublic, 366254721Semaste eAccessPrivate, 367254721Semaste eAccessProtected, 368254721Semaste eAccessPackage 369254721Semaste } AccessType; 370254721Semaste 371254721Semaste typedef enum CommandArgumentType 372254721Semaste { 373254721Semaste eArgTypeAddress = 0, 374254721Semaste eArgTypeAddressOrExpression, 375254721Semaste eArgTypeAliasName, 376254721Semaste eArgTypeAliasOptions, 377254721Semaste eArgTypeArchitecture, 378254721Semaste eArgTypeBoolean, 379254721Semaste eArgTypeBreakpointID, 380254721Semaste eArgTypeBreakpointIDRange, 381254721Semaste eArgTypeByteSize, 382254721Semaste eArgTypeClassName, 383254721Semaste eArgTypeCommandName, 384254721Semaste eArgTypeCount, 385263363Semaste eArgTypeDescriptionVerbosity, 386254721Semaste eArgTypeDirectoryName, 387254721Semaste eArgTypeDisassemblyFlavor, 388254721Semaste eArgTypeEndAddress, 389254721Semaste eArgTypeExpression, 390254721Semaste eArgTypeExpressionPath, 391254721Semaste eArgTypeExprFormat, 392254721Semaste eArgTypeFilename, 393254721Semaste eArgTypeFormat, 394254721Semaste eArgTypeFrameIndex, 395254721Semaste eArgTypeFullName, 396254721Semaste eArgTypeFunctionName, 397254721Semaste eArgTypeFunctionOrSymbol, 398254721Semaste eArgTypeGDBFormat, 399254721Semaste eArgTypeIndex, 400254721Semaste eArgTypeLanguage, 401254721Semaste eArgTypeLineNum, 402254721Semaste eArgTypeLogCategory, 403254721Semaste eArgTypeLogChannel, 404254721Semaste eArgTypeMethod, 405254721Semaste eArgTypeName, 406254721Semaste eArgTypeNewPathPrefix, 407254721Semaste eArgTypeNumLines, 408254721Semaste eArgTypeNumberPerLine, 409254721Semaste eArgTypeOffset, 410254721Semaste eArgTypeOldPathPrefix, 411254721Semaste eArgTypeOneLiner, 412263363Semaste eArgTypePath, 413263363Semaste eArgTypePermissionsNumber, 414263363Semaste eArgTypePermissionsString, 415254721Semaste eArgTypePid, 416254721Semaste eArgTypePlugin, 417254721Semaste eArgTypeProcessName, 418254721Semaste eArgTypePythonClass, 419254721Semaste eArgTypePythonFunction, 420254721Semaste eArgTypePythonScript, 421254721Semaste eArgTypeQueueName, 422254721Semaste eArgTypeRegisterName, 423254721Semaste eArgTypeRegularExpression, 424254721Semaste eArgTypeRunArgs, 425254721Semaste eArgTypeRunMode, 426254721Semaste eArgTypeScriptedCommandSynchronicity, 427254721Semaste eArgTypeScriptLang, 428254721Semaste eArgTypeSearchWord, 429254721Semaste eArgTypeSelector, 430254721Semaste eArgTypeSettingIndex, 431254721Semaste eArgTypeSettingKey, 432254721Semaste eArgTypeSettingPrefix, 433254721Semaste eArgTypeSettingVariableName, 434254721Semaste eArgTypeShlibName, 435254721Semaste eArgTypeSourceFile, 436254721Semaste eArgTypeSortOrder, 437254721Semaste eArgTypeStartAddress, 438254721Semaste eArgTypeSummaryString, 439254721Semaste eArgTypeSymbol, 440254721Semaste eArgTypeThreadID, 441254721Semaste eArgTypeThreadIndex, 442254721Semaste eArgTypeThreadName, 443254721Semaste eArgTypeUnsignedInteger, 444254721Semaste eArgTypeUnixSignal, 445254721Semaste eArgTypeVarName, 446254721Semaste eArgTypeValue, 447254721Semaste eArgTypeWidth, 448254721Semaste eArgTypeNone, 449254721Semaste eArgTypePlatform, 450254721Semaste eArgTypeWatchpointID, 451254721Semaste eArgTypeWatchpointIDRange, 452254721Semaste eArgTypeWatchType, 453254721Semaste eArgTypeLastArg // Always keep this entry as the last entry in this enumeration!! 454254721Semaste } CommandArgumentType; 455254721Semaste 456254721Semaste //---------------------------------------------------------------------- 457254721Semaste // Symbol types 458254721Semaste //---------------------------------------------------------------------- 459254721Semaste typedef enum SymbolType 460254721Semaste { 461254721Semaste eSymbolTypeAny = 0, 462254721Semaste eSymbolTypeInvalid = 0, 463254721Semaste eSymbolTypeAbsolute, 464254721Semaste eSymbolTypeCode, 465254721Semaste eSymbolTypeResolver, 466254721Semaste eSymbolTypeData, 467254721Semaste eSymbolTypeTrampoline, 468254721Semaste eSymbolTypeRuntime, 469254721Semaste eSymbolTypeException, 470254721Semaste eSymbolTypeSourceFile, 471254721Semaste eSymbolTypeHeaderFile, 472254721Semaste eSymbolTypeObjectFile, 473254721Semaste eSymbolTypeCommonBlock, 474254721Semaste eSymbolTypeBlock, 475254721Semaste eSymbolTypeLocal, 476254721Semaste eSymbolTypeParam, 477254721Semaste eSymbolTypeVariable, 478254721Semaste eSymbolTypeVariableType, 479254721Semaste eSymbolTypeLineEntry, 480254721Semaste eSymbolTypeLineHeader, 481254721Semaste eSymbolTypeScopeBegin, 482254721Semaste eSymbolTypeScopeEnd, 483254721Semaste eSymbolTypeAdditional, // When symbols take more than one entry, the extra entries get this type 484254721Semaste eSymbolTypeCompiler, 485254721Semaste eSymbolTypeInstrumentation, 486254721Semaste eSymbolTypeUndefined, 487254721Semaste eSymbolTypeObjCClass, 488254721Semaste eSymbolTypeObjCMetaClass, 489263363Semaste eSymbolTypeObjCIVar, 490263363Semaste eSymbolTypeReExported 491254721Semaste } SymbolType; 492254721Semaste 493254721Semaste typedef enum SectionType 494254721Semaste { 495254721Semaste eSectionTypeInvalid, 496254721Semaste eSectionTypeCode, 497254721Semaste eSectionTypeContainer, // The section contains child sections 498254721Semaste eSectionTypeData, 499254721Semaste eSectionTypeDataCString, // Inlined C string data 500254721Semaste eSectionTypeDataCStringPointers, // Pointers to C string data 501254721Semaste eSectionTypeDataSymbolAddress, // Address of a symbol in the symbol table 502254721Semaste eSectionTypeData4, 503254721Semaste eSectionTypeData8, 504254721Semaste eSectionTypeData16, 505254721Semaste eSectionTypeDataPointers, 506254721Semaste eSectionTypeDebug, 507254721Semaste eSectionTypeZeroFill, 508254721Semaste eSectionTypeDataObjCMessageRefs, // Pointer to function pointer + selector 509254721Semaste eSectionTypeDataObjCCFStrings, // Objective C const CFString/NSString objects 510254721Semaste eSectionTypeDWARFDebugAbbrev, 511254721Semaste eSectionTypeDWARFDebugAranges, 512254721Semaste eSectionTypeDWARFDebugFrame, 513254721Semaste eSectionTypeDWARFDebugInfo, 514254721Semaste eSectionTypeDWARFDebugLine, 515254721Semaste eSectionTypeDWARFDebugLoc, 516254721Semaste eSectionTypeDWARFDebugMacInfo, 517254721Semaste eSectionTypeDWARFDebugPubNames, 518254721Semaste eSectionTypeDWARFDebugPubTypes, 519254721Semaste eSectionTypeDWARFDebugRanges, 520254721Semaste eSectionTypeDWARFDebugStr, 521254721Semaste eSectionTypeDWARFAppleNames, 522254721Semaste eSectionTypeDWARFAppleTypes, 523254721Semaste eSectionTypeDWARFAppleNamespaces, 524254721Semaste eSectionTypeDWARFAppleObjC, 525254721Semaste eSectionTypeELFSymbolTable, // Elf SHT_SYMTAB section 526254721Semaste eSectionTypeELFDynamicSymbols, // Elf SHT_DYNSYM section 527254721Semaste eSectionTypeELFRelocationEntries, // Elf SHT_REL or SHT_REL section 528254721Semaste eSectionTypeELFDynamicLinkInfo, // Elf SHT_DYNAMIC section 529254721Semaste eSectionTypeEHFrame, 530254721Semaste eSectionTypeOther 531254721Semaste 532254721Semaste } SectionType; 533254721Semaste 534254721Semaste typedef enum EmulateInstructionOptions 535254721Semaste { 536254721Semaste eEmulateInstructionOptionNone = (0u), 537254721Semaste eEmulateInstructionOptionAutoAdvancePC = (1u << 0), 538254721Semaste eEmulateInstructionOptionIgnoreConditions = (1u << 1) 539254721Semaste } EmulateInstructionOptions; 540254721Semaste 541254721Semaste typedef enum FunctionNameType 542254721Semaste { 543254721Semaste eFunctionNameTypeNone = 0u, 544254721Semaste eFunctionNameTypeAuto = (1u << 1), // Automatically figure out which FunctionNameType 545254721Semaste // bits to set based on the function name. 546254721Semaste eFunctionNameTypeFull = (1u << 2), // The function name. 547254721Semaste // For C this is the same as just the name of the function 548254721Semaste // For C++ this is the mangled or demangled version of the mangled name. 549254721Semaste // For ObjC this is the full function signature with the + or 550254721Semaste // - and the square brackets and the class and selector 551254721Semaste eFunctionNameTypeBase = (1u << 3), // The function name only, no namespaces or arguments and no class 552254721Semaste // methods or selectors will be searched. 553254721Semaste eFunctionNameTypeMethod = (1u << 4), // Find function by method name (C++) with no namespace or arguments 554254721Semaste eFunctionNameTypeSelector = (1u << 5), // Find function by selector name (ObjC) names 555254721Semaste eFunctionNameTypeAny = eFunctionNameTypeAuto // DEPRECATED: use eFunctionNameTypeAuto 556254721Semaste } FunctionNameType; 557254721Semaste 558254721Semaste 559254721Semaste //---------------------------------------------------------------------- 560254721Semaste // Basic types enumeration for the public API SBType::GetBasicType() 561254721Semaste //---------------------------------------------------------------------- 562254721Semaste typedef enum BasicType 563254721Semaste { 564254721Semaste eBasicTypeInvalid = 0, 565254721Semaste eBasicTypeVoid = 1, 566254721Semaste eBasicTypeChar, 567254721Semaste eBasicTypeSignedChar, 568254721Semaste eBasicTypeUnsignedChar, 569254721Semaste eBasicTypeWChar, 570254721Semaste eBasicTypeSignedWChar, 571254721Semaste eBasicTypeUnsignedWChar, 572254721Semaste eBasicTypeChar16, 573254721Semaste eBasicTypeChar32, 574254721Semaste eBasicTypeShort, 575254721Semaste eBasicTypeUnsignedShort, 576254721Semaste eBasicTypeInt, 577254721Semaste eBasicTypeUnsignedInt, 578254721Semaste eBasicTypeLong, 579254721Semaste eBasicTypeUnsignedLong, 580254721Semaste eBasicTypeLongLong, 581254721Semaste eBasicTypeUnsignedLongLong, 582254721Semaste eBasicTypeInt128, 583254721Semaste eBasicTypeUnsignedInt128, 584254721Semaste eBasicTypeBool, 585254721Semaste eBasicTypeHalf, 586254721Semaste eBasicTypeFloat, 587254721Semaste eBasicTypeDouble, 588254721Semaste eBasicTypeLongDouble, 589254721Semaste eBasicTypeFloatComplex, 590254721Semaste eBasicTypeDoubleComplex, 591254721Semaste eBasicTypeLongDoubleComplex, 592254721Semaste eBasicTypeObjCID, 593254721Semaste eBasicTypeObjCClass, 594254721Semaste eBasicTypeObjCSel, 595254721Semaste eBasicTypeNullPtr, 596254721Semaste eBasicTypeOther 597254721Semaste } BasicType; 598254721Semaste 599254721Semaste typedef enum TypeClass 600254721Semaste { 601254721Semaste eTypeClassInvalid = (0u), 602254721Semaste eTypeClassArray = (1u << 0), 603254721Semaste eTypeClassBlockPointer = (1u << 1), 604254721Semaste eTypeClassBuiltin = (1u << 2), 605254721Semaste eTypeClassClass = (1u << 3), 606254721Semaste eTypeClassComplexFloat = (1u << 4), 607254721Semaste eTypeClassComplexInteger = (1u << 5), 608254721Semaste eTypeClassEnumeration = (1u << 6), 609254721Semaste eTypeClassFunction = (1u << 7), 610254721Semaste eTypeClassMemberPointer = (1u << 8), 611254721Semaste eTypeClassObjCObject = (1u << 9), 612254721Semaste eTypeClassObjCInterface = (1u << 10), 613254721Semaste eTypeClassObjCObjectPointer = (1u << 11), 614254721Semaste eTypeClassPointer = (1u << 12), 615254721Semaste eTypeClassReference = (1u << 13), 616254721Semaste eTypeClassStruct = (1u << 14), 617254721Semaste eTypeClassTypedef = (1u << 15), 618254721Semaste eTypeClassUnion = (1u << 16), 619254721Semaste eTypeClassVector = (1u << 17), 620254721Semaste // Define the last type class as the MSBit of a 32 bit value 621254721Semaste eTypeClassOther = (1u << 31), 622254721Semaste // Define a mask that can be used for any type when finding types 623254721Semaste eTypeClassAny = (0xffffffffu) 624254721Semaste } TypeClass; 625254721Semaste 626254721Semaste typedef enum TemplateArgumentKind 627254721Semaste { 628254721Semaste eTemplateArgumentKindNull = 0, 629254721Semaste eTemplateArgumentKindType, 630254721Semaste eTemplateArgumentKindDeclaration, 631254721Semaste eTemplateArgumentKindIntegral, 632254721Semaste eTemplateArgumentKindTemplate, 633254721Semaste eTemplateArgumentKindTemplateExpansion, 634254721Semaste eTemplateArgumentKindExpression, 635254721Semaste eTemplateArgumentKindPack 636254721Semaste 637254721Semaste } TemplateArgumentKind; 638254721Semaste 639254721Semaste //---------------------------------------------------------------------- 640254721Semaste // Options that can be set for a formatter to alter its behavior 641254721Semaste // Not all of these are applicable to all formatter types 642254721Semaste //---------------------------------------------------------------------- 643254721Semaste typedef enum TypeOptions 644254721Semaste { 645254721Semaste eTypeOptionNone = (0u), 646254721Semaste eTypeOptionCascade = (1u << 0), 647254721Semaste eTypeOptionSkipPointers = (1u << 1), 648254721Semaste eTypeOptionSkipReferences = (1u << 2), 649254721Semaste eTypeOptionHideChildren = (1u << 3), 650254721Semaste eTypeOptionHideValue = (1u << 4), 651254721Semaste eTypeOptionShowOneLiner = (1u << 5), 652254721Semaste eTypeOptionHideNames = (1u << 6) 653254721Semaste } TypeOptions; 654254721Semaste 655254721Semaste //---------------------------------------------------------------------- 656254721Semaste // This is the return value for frame comparisons. When frame A pushes 657254721Semaste // frame B onto the stack, frame A is OLDER than frame B. 658254721Semaste //---------------------------------------------------------------------- 659254721Semaste typedef enum FrameComparison 660254721Semaste { 661254721Semaste eFrameCompareInvalid, 662254721Semaste eFrameCompareUnknown, 663254721Semaste eFrameCompareEqual, 664254721Semaste eFrameCompareYounger, 665254721Semaste eFrameCompareOlder 666254721Semaste } FrameComparison; 667254721Semaste 668254721Semaste //---------------------------------------------------------------------- 669254721Semaste // Address Class 670254721Semaste // 671254721Semaste // A way of classifying an address used for disassembling and setting 672254721Semaste // breakpoints. Many object files can track exactly what parts of their 673254721Semaste // object files are code, data and other information. This is of course 674254721Semaste // above and beyond just looking at the section types. For example, code 675254721Semaste // might contain PC relative data and the object file might be able to 676254721Semaste // tell us that an address in code is data. 677254721Semaste //---------------------------------------------------------------------- 678254721Semaste typedef enum AddressClass 679254721Semaste { 680254721Semaste eAddressClassInvalid, 681254721Semaste eAddressClassUnknown, 682254721Semaste eAddressClassCode, 683254721Semaste eAddressClassCodeAlternateISA, 684254721Semaste eAddressClassData, 685254721Semaste eAddressClassDebug, 686254721Semaste eAddressClassRuntime 687254721Semaste } AddressClass; 688254721Semaste 689263367Semaste //---------------------------------------------------------------------- 690263367Semaste // File Permissions 691263367Semaste // 692263367Semaste // Designed to mimic the unix file permission bits so they can be 693263367Semaste // used with functions that set 'mode_t' to certain values for 694263367Semaste // permissions. 695263367Semaste //---------------------------------------------------------------------- 696263367Semaste typedef enum FilePermissions 697263367Semaste { 698263367Semaste eFilePermissionsUserRead = (1u << 8), 699263367Semaste eFilePermissionsUserWrite = (1u << 7), 700263367Semaste eFilePermissionsUserExecute = (1u << 6), 701263367Semaste eFilePermissionsGroupRead = (1u << 5), 702263367Semaste eFilePermissionsGroupWrite = (1u << 4), 703263367Semaste eFilePermissionsGroupExecute = (1u << 3), 704263367Semaste eFilePermissionsWorldRead = (1u << 2), 705263367Semaste eFilePermissionsWorldWrite = (1u << 1), 706263367Semaste eFilePermissionsWorldExecute = (1u << 0), 707263367Semaste 708263367Semaste eFilePermissionsUserRW = (eFilePermissionsUserRead | eFilePermissionsUserWrite | 0 ), 709263367Semaste eFileFilePermissionsUserRX = (eFilePermissionsUserRead | 0 | eFilePermissionsUserExecute ), 710263367Semaste eFilePermissionsUserRWX = (eFilePermissionsUserRead | eFilePermissionsUserWrite | eFilePermissionsUserExecute ), 711263367Semaste 712263367Semaste eFilePermissionsGroupRW = (eFilePermissionsGroupRead | eFilePermissionsGroupWrite | 0 ), 713263367Semaste eFilePermissionsGroupRX = (eFilePermissionsGroupRead | 0 | eFilePermissionsGroupExecute ), 714263367Semaste eFilePermissionsGroupRWX = (eFilePermissionsGroupRead | eFilePermissionsGroupWrite | eFilePermissionsGroupExecute ), 715263367Semaste 716263367Semaste eFilePermissionsWorldRW = (eFilePermissionsWorldRead | eFilePermissionsWorldWrite | 0 ), 717263367Semaste eFilePermissionsWorldRX = (eFilePermissionsWorldRead | 0 | eFilePermissionsWorldExecute ), 718263367Semaste eFilePermissionsWorldRWX = (eFilePermissionsWorldRead | eFilePermissionsWorldWrite | eFilePermissionsWorldExecute ), 719263367Semaste 720263367Semaste eFilePermissionsEveryoneR = (eFilePermissionsUserRead | eFilePermissionsGroupRead | eFilePermissionsWorldRead ), 721263367Semaste eFilePermissionsEveryoneW = (eFilePermissionsUserWrite | eFilePermissionsGroupWrite | eFilePermissionsWorldWrite ), 722263367Semaste eFilePermissionsEveryoneX = (eFilePermissionsUserExecute | eFilePermissionsGroupExecute | eFilePermissionsWorldExecute ), 723263367Semaste 724263367Semaste eFilePermissionsEveryoneRW = (eFilePermissionsEveryoneR | eFilePermissionsEveryoneW | 0 ), 725263367Semaste eFilePermissionsEveryoneRX = (eFilePermissionsEveryoneR | 0 | eFilePermissionsEveryoneX ), 726263367Semaste eFilePermissionsEveryoneRWX = (eFilePermissionsEveryoneR | eFilePermissionsEveryoneW | eFilePermissionsEveryoneX ), 727263367Semaste eFilePermissionsFileDefault = eFilePermissionsUserRW, 728263367Semaste eFilePermissionsDirectoryDefault = eFilePermissionsUserRWX, 729263367Semaste } FilePermissions; 730263367Semaste 731269024Semaste //---------------------------------------------------------------------- 732269024Semaste // Queue work item types 733269024Semaste // 734269024Semaste // The different types of work that can be enqueued on a libdispatch 735269024Semaste // aka Grand Central Dispatch (GCD) queue. 736269024Semaste //---------------------------------------------------------------------- 737269024Semaste typedef enum QueueItemKind 738269024Semaste { 739269024Semaste eQueueItemKindUnknown = 0, 740269024Semaste eQueueItemKindFunction, 741269024Semaste eQueueItemKindBlock 742269024Semaste } QueueItemKind; 743269024Semaste 744254721Semaste} // namespace lldb 745254721Semaste 746254721Semaste 747254721Semaste#endif // LLDB_lldb_enumerations_h_ 748