lldb-private-enumerations.h revision 254721
1254721Semaste//===-- lldb-private-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_private_enumerations_h_ 11254721Semaste#define LLDB_lldb_private_enumerations_h_ 12254721Semaste 13254721Semastenamespace lldb_private { 14254721Semaste 15254721Semaste//---------------------------------------------------------------------- 16254721Semaste// Thread Step Types 17254721Semaste//---------------------------------------------------------------------- 18254721Semastetypedef enum StepType 19254721Semaste{ 20254721Semaste eStepTypeNone, 21254721Semaste eStepTypeTrace, ///< Single step one instruction. 22254721Semaste eStepTypeTraceOver, ///< Single step one instruction, stepping over. 23254721Semaste eStepTypeInto, ///< Single step into a specified context. 24254721Semaste eStepTypeOver, ///< Single step over a specified context. 25254721Semaste eStepTypeOut ///< Single step out a specified context. 26254721Semaste} StepType; 27254721Semaste 28254721Semaste//---------------------------------------------------------------------- 29254721Semaste// Address Types 30254721Semaste//---------------------------------------------------------------------- 31254721Semastetypedef enum AddressType 32254721Semaste{ 33254721Semaste eAddressTypeInvalid = 0, 34254721Semaste eAddressTypeFile, ///< Address is an address as found in an object or symbol file 35254721Semaste eAddressTypeLoad, ///< Address is an address as in the current target inferior process 36254721Semaste eAddressTypeHost ///< Address is an address in the process that is running this code 37254721Semaste} AddressType; 38254721Semaste 39254721Semaste//---------------------------------------------------------------------- 40254721Semaste// Votes - Need a tri-state, yes, no, no opinion... 41254721Semaste//---------------------------------------------------------------------- 42254721Semastetypedef enum Vote 43254721Semaste{ 44254721Semaste eVoteNo = -1, 45254721Semaste eVoteNoOpinion = 0, 46254721Semaste eVoteYes = 1 47254721Semaste} Vote; 48254721Semaste 49254721Semastetypedef enum ArchitectureType 50254721Semaste{ 51254721Semaste eArchTypeInvalid, 52254721Semaste eArchTypeMachO, 53254721Semaste eArchTypeELF, 54254721Semaste kNumArchTypes 55254721Semaste} ArchitectureType; 56254721Semaste 57254721Semaste//---------------------------------------------------------------------- 58254721Semaste/// Settable state variable types. 59254721Semaste/// 60254721Semaste//---------------------------------------------------------------------- 61254721Semaste 62254721Semaste//typedef enum SettableVariableType 63254721Semaste//{ 64254721Semaste// eSetVarTypeInt, 65254721Semaste// eSetVarTypeBoolean, 66254721Semaste// eSetVarTypeString, 67254721Semaste// eSetVarTypeArray, 68254721Semaste// eSetVarTypeDictionary, 69254721Semaste// eSetVarTypeEnum, 70254721Semaste// eSetVarTypeNone 71254721Semaste//} SettableVariableType; 72254721Semaste 73254721Semastetypedef enum VarSetOperationType 74254721Semaste{ 75254721Semaste eVarSetOperationReplace, 76254721Semaste eVarSetOperationInsertBefore, 77254721Semaste eVarSetOperationInsertAfter, 78254721Semaste eVarSetOperationRemove, 79254721Semaste eVarSetOperationAppend, 80254721Semaste eVarSetOperationClear, 81254721Semaste eVarSetOperationAssign, 82254721Semaste eVarSetOperationInvalid 83254721Semaste} VarSetOperationType; 84254721Semaste 85254721Semastetypedef enum ArgumentRepetitionType 86254721Semaste{ 87254721Semaste eArgRepeatPlain, // Exactly one occurrence 88254721Semaste eArgRepeatOptional, // At most one occurrence, but it's optional 89254721Semaste eArgRepeatPlus, // One or more occurrences 90254721Semaste eArgRepeatStar, // Zero or more occurrences 91254721Semaste eArgRepeatRange, // Repetition of same argument, from 1 to n 92254721Semaste eArgRepeatPairPlain, // A pair of arguments that must always go together ([arg-type arg-value]), occurs exactly once 93254721Semaste eArgRepeatPairOptional, // A pair that occurs at most once (optional) 94254721Semaste eArgRepeatPairPlus, // One or more occurrences of a pair 95254721Semaste eArgRepeatPairStar, // Zero or more occurrences of a pair 96254721Semaste eArgRepeatPairRange, // A pair that repeats from 1 to n 97254721Semaste eArgRepeatPairRangeOptional // A pair that repeats from 1 to n, but is optional 98254721Semaste} ArgumentRepetitionType; 99254721Semaste 100254721Semastetypedef enum SortOrder 101254721Semaste{ 102254721Semaste eSortOrderNone, 103254721Semaste eSortOrderByAddress, 104254721Semaste eSortOrderByName 105254721Semaste} SortOrder; 106254721Semaste 107254721Semaste 108254721Semaste//---------------------------------------------------------------------- 109254721Semaste// Used in conjunction with Host::GetLLDBPath () to find files that 110254721Semaste// are related to 111254721Semaste//---------------------------------------------------------------------- 112254721Semastetypedef enum PathType 113254721Semaste{ 114254721Semaste ePathTypeLLDBShlibDir, // The directory where the lldb.so (unix) or LLDB mach-o file in LLDB.framework (MacOSX) exists 115254721Semaste ePathTypeSupportExecutableDir, // Find LLDB support executable directory (debugserver, etc) 116254721Semaste ePathTypeHeaderDir, // Find LLDB header file directory 117254721Semaste ePathTypePythonDir, // Find Python modules (PYTHONPATH) directory 118254721Semaste ePathTypeLLDBSystemPlugins, // System plug-ins directory 119254721Semaste ePathTypeLLDBUserPlugins // User plug-ins directory 120254721Semaste} PathType; 121254721Semaste 122254721Semaste 123254721Semaste//---------------------------------------------------------------------- 124254721Semaste// We can execute ThreadPlans on one thread with various fall-back modes 125254721Semaste// (try other threads after timeout, etc.) This enum gives the result of 126254721Semaste// thread plan executions. 127254721Semaste//---------------------------------------------------------------------- 128254721Semastetypedef enum ExecutionResults 129254721Semaste{ 130254721Semaste eExecutionSetupError, 131254721Semaste eExecutionCompleted, 132254721Semaste eExecutionDiscarded, 133254721Semaste eExecutionInterrupted, 134254721Semaste eExecutionHitBreakpoint, 135254721Semaste eExecutionTimedOut 136254721Semaste} ExecutionResults; 137254721Semaste 138254721Semastetypedef enum ObjCRuntimeVersions { 139254721Semaste eObjC_VersionUnknown = 0, 140254721Semaste eAppleObjC_V1 = 1, 141254721Semaste eAppleObjC_V2 = 2 142254721Semaste} ObjCRuntimeVersions; 143254721Semaste 144254721Semaste 145254721Semaste//---------------------------------------------------------------------- 146254721Semaste// LazyBool is for boolean values that need to be calculated lazily. 147254721Semaste// Values start off set to eLazyBoolCalculate, and then they can be 148254721Semaste// calculated once and set to eLazyBoolNo or eLazyBoolYes. 149254721Semaste//---------------------------------------------------------------------- 150254721Semastetypedef enum LazyBool { 151254721Semaste eLazyBoolCalculate = -1, 152254721Semaste eLazyBoolNo = 0, 153254721Semaste eLazyBoolYes = 1 154254721Semaste} LazyBool; 155254721Semaste 156254721Semaste//------------------------------------------------------------------ 157254721Semaste/// Name matching 158254721Semaste//------------------------------------------------------------------ 159254721Semastetypedef enum NameMatchType 160254721Semaste{ 161254721Semaste eNameMatchIgnore, 162254721Semaste eNameMatchEquals, 163254721Semaste eNameMatchContains, 164254721Semaste eNameMatchStartsWith, 165254721Semaste eNameMatchEndsWith, 166254721Semaste eNameMatchRegularExpression 167254721Semaste 168254721Semaste} NameMatchType; 169254721Semaste 170254721Semaste 171254721Semaste//------------------------------------------------------------------ 172254721Semaste/// Instruction types 173254721Semaste//------------------------------------------------------------------ 174254721Semastetypedef enum InstructionType 175254721Semaste{ 176254721Semaste eInstructionTypeAny, // Support for any instructions at all (at least one) 177254721Semaste eInstructionTypePrologueEpilogue, // All prologue and epilogue instructons that push and pop register values and modify sp/fp 178254721Semaste eInstructionTypePCModifying, // Any instruction that modifies the program counter/instruction pointer 179254721Semaste eInstructionTypeAll // All instructions of any kind 180254721Semaste 181254721Semaste} InstructionType; 182254721Semaste 183254721Semaste 184254721Semaste//------------------------------------------------------------------ 185254721Semaste/// Format category entry types 186254721Semaste//------------------------------------------------------------------ 187254721Semastetypedef enum FormatCategoryItem 188254721Semaste{ 189254721Semaste eFormatCategoryItemSummary = 0x0001, 190254721Semaste eFormatCategoryItemRegexSummary = 0x0002, 191254721Semaste eFormatCategoryItemFilter = 0x0004, 192254721Semaste eFormatCategoryItemRegexFilter = 0x0008, 193254721Semaste eFormatCategoryItemSynth = 0x0010, 194254721Semaste eFormatCategoryItemRegexSynth = 0x0020 195254721Semaste} FormatCategoryItem; 196254721Semaste 197254721Semaste//------------------------------------------------------------------ 198254721Semaste/// Expression execution policies 199254721Semaste//------------------------------------------------------------------ 200254721Semastetypedef enum { 201254721Semaste eExecutionPolicyOnlyWhenNeeded, 202254721Semaste eExecutionPolicyNever, 203254721Semaste eExecutionPolicyAlways 204254721Semaste} ExecutionPolicy; 205254721Semaste 206254721Semaste//---------------------------------------------------------------------- 207254721Semaste// Ways that the FormatManager picks a particular format for a type 208254721Semaste//---------------------------------------------------------------------- 209254721Semastetypedef enum FormatterChoiceCriterion 210254721Semaste{ 211254721Semaste eFormatterChoiceCriterionDirectChoice = 0x00000000, 212254721Semaste eFormatterChoiceCriterionStrippedPointerReference = 0x00000001, 213254721Semaste eFormatterChoiceCriterionNavigatedTypedefs = 0x00000002, 214254721Semaste eFormatterChoiceCriterionRegularExpressionSummary = 0x00000004, 215254721Semaste eFormatterChoiceCriterionRegularExpressionFilter = 0x00000004, 216254721Semaste eFormatterChoiceCriterionDynamicObjCDiscovery = 0x00000008, 217254721Semaste eFormatterChoiceCriterionStrippedBitField = 0x00000010, 218254721Semaste eFormatterChoiceCriterionWentToStaticValue = 0x00000020 219254721Semaste} FormatterChoiceCriterion; 220254721Semaste 221254721Semaste//---------------------------------------------------------------------- 222254721Semaste// Synchronicity behavior of scripted commands 223254721Semaste//---------------------------------------------------------------------- 224254721Semastetypedef enum ScriptedCommandSynchronicity 225254721Semaste{ 226254721Semaste eScriptedCommandSynchronicitySynchronous, 227254721Semaste eScriptedCommandSynchronicityAsynchronous, 228254721Semaste eScriptedCommandSynchronicityCurrentValue // use whatever the current synchronicity is 229254721Semaste} ScriptedCommandSynchronicity; 230254721Semaste 231254721Semaste 232254721Semaste//---------------------------------------------------------------------- 233254721Semaste// Loading modules from memory 234254721Semaste//---------------------------------------------------------------------- 235254721Semastetypedef enum MemoryModuleLoadLevel { 236254721Semaste eMemoryModuleLoadLevelMinimal, // Load sections only 237254721Semaste eMemoryModuleLoadLevelPartial, // Load function bounds but no symbols 238254721Semaste eMemoryModuleLoadLevelComplete, // Load sections and all symbols 239254721Semaste} MemoryModuleLoadLevel; 240254721Semaste 241254721Semaste 242254721Semaste} // namespace lldb_private 243254721Semaste 244254721Semaste 245254721Semaste#endif // LLDB_lldb_private_enumerations_h_ 246