/Users/buildslave/jenkins/workspace/coverage/llvm-project/lldb/include/lldb/lldb-enumerations.h
Line | Count | Source (jump to first uncovered line) |
1 | | //===-- lldb-enumerations.h -------------------------------------*- C++ -*-===// |
2 | | // |
3 | | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | | // See https://llvm.org/LICENSE.txt for license information. |
5 | | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | | // |
7 | | //===----------------------------------------------------------------------===// |
8 | | |
9 | | #ifndef LLDB_LLDB_ENUMERATIONS_H |
10 | | #define LLDB_LLDB_ENUMERATIONS_H |
11 | | |
12 | | #include <cstdint> |
13 | | #include <type_traits> |
14 | | |
15 | | #ifndef SWIG |
16 | | // Macro to enable bitmask operations on an enum. Without this, Enum | Enum |
17 | | // gets promoted to an int, so you have to say Enum a = Enum(eFoo | eBar). If |
18 | | // you mark Enum with LLDB_MARK_AS_BITMASK_ENUM(Enum), however, you can simply |
19 | | // write Enum a = eFoo | eBar. |
20 | | // Unfortunately, swig<3.0 doesn't recognise the constexpr keyword, so remove |
21 | | // this entire block, as it is not necessary for swig processing. |
22 | | #define LLDB_MARK_AS_BITMASK_ENUM(Enum) \ |
23 | 7.43M | constexpr Enum operator|(Enum a, Enum b) { \ |
24 | 7.43M | return static_cast<Enum>( \ |
25 | 7.43M | static_cast<std::underlying_type<Enum>::type>(a) | \ |
26 | 7.43M | static_cast<std::underlying_type<Enum>::type>(b)); \ |
27 | 7.43M | } \ Unexecuted instantiation: lldb::operator|(lldb::TypeClass, lldb::TypeClass) lldb::operator|(lldb::SymbolContextItem, lldb::SymbolContextItem) Line | Count | Source | 23 | 4.60M | constexpr Enum operator|(Enum a, Enum b) { \ | 24 | 4.60M | return static_cast<Enum>( \ | 25 | 4.60M | static_cast<std::underlying_type<Enum>::type>(a) | \ | 26 | 4.60M | static_cast<std::underlying_type<Enum>::type>(b)); \ | 27 | 4.60M | } \ |
lldb::operator|(lldb::Permissions, lldb::Permissions) Line | Count | Source | 23 | 43.9k | constexpr Enum operator|(Enum a, Enum b) { \ | 24 | 43.9k | return static_cast<Enum>( \ | 25 | 43.9k | static_cast<std::underlying_type<Enum>::type>(a) | \ | 26 | 43.9k | static_cast<std::underlying_type<Enum>::type>(b)); \ | 27 | 43.9k | } \ |
lldb::operator|(lldb::FunctionNameType, lldb::FunctionNameType) Line | Count | Source | 23 | 2.78M | constexpr Enum operator|(Enum a, Enum b) { \ | 24 | 2.78M | return static_cast<Enum>( \ | 25 | 2.78M | static_cast<std::underlying_type<Enum>::type>(a) | \ | 26 | 2.78M | static_cast<std::underlying_type<Enum>::type>(b)); \ | 27 | 2.78M | } \ |
|
28 | 31.6M | constexpr Enum operator&(Enum a, Enum b) { \ |
29 | 31.6M | return static_cast<Enum>( \ |
30 | 31.6M | static_cast<std::underlying_type<Enum>::type>(a) & \ |
31 | 31.6M | static_cast<std::underlying_type<Enum>::type>(b)); \ |
32 | 31.6M | } \ Unexecuted instantiation: lldb::operator&(lldb::Permissions, lldb::Permissions) lldb::operator&(lldb::SymbolContextItem, lldb::SymbolContextItem) Line | Count | Source | 28 | 19.6M | constexpr Enum operator&(Enum a, Enum b) { \ | 29 | 19.6M | return static_cast<Enum>( \ | 30 | 19.6M | static_cast<std::underlying_type<Enum>::type>(a) & \ | 31 | 19.6M | static_cast<std::underlying_type<Enum>::type>(b)); \ | 32 | 19.6M | } \ |
lldb::operator&(lldb::FunctionNameType, lldb::FunctionNameType) Line | Count | Source | 28 | 11.9M | constexpr Enum operator&(Enum a, Enum b) { \ | 29 | 11.9M | return static_cast<Enum>( \ | 30 | 11.9M | static_cast<std::underlying_type<Enum>::type>(a) & \ | 31 | 11.9M | static_cast<std::underlying_type<Enum>::type>(b)); \ | 32 | 11.9M | } \ |
lldb::operator&(lldb::TypeClass, lldb::TypeClass) Line | Count | Source | 28 | 3 | constexpr Enum operator&(Enum a, Enum b) { \ | 29 | 3 | return static_cast<Enum>( \ | 30 | 3 | static_cast<std::underlying_type<Enum>::type>(a) & \ | 31 | 3 | static_cast<std::underlying_type<Enum>::type>(b)); \ | 32 | 3 | } \ |
|
33 | 2.73k | constexpr Enum operator~(Enum a) { \ |
34 | 2.73k | return static_cast<Enum>( \ |
35 | 2.73k | ~static_cast<std::underlying_type<Enum>::type>(a)); \ |
36 | 2.73k | } \ Unexecuted instantiation: lldb::operator~(lldb::Permissions) Unexecuted instantiation: lldb::operator~(lldb::TypeClass) lldb::operator~(lldb::SymbolContextItem) Line | Count | Source | 33 | 38 | constexpr Enum operator~(Enum a) { \ | 34 | 38 | return static_cast<Enum>( \ | 35 | 38 | ~static_cast<std::underlying_type<Enum>::type>(a)); \ | 36 | 38 | } \ |
lldb::operator~(lldb::FunctionNameType) Line | Count | Source | 33 | 2.69k | constexpr Enum operator~(Enum a) { \ | 34 | 2.69k | return static_cast<Enum>( \ | 35 | 2.69k | ~static_cast<std::underlying_type<Enum>::type>(a)); \ | 36 | 2.69k | } \ |
|
37 | 436k | inline Enum &operator|=(Enum &a, Enum b) { \ |
38 | 436k | a = a | b; \ |
39 | 436k | return a; \ |
40 | 436k | } \ Unexecuted instantiation: lldb::operator|=(lldb::TypeClass&, lldb::TypeClass) lldb::operator|=(lldb::SymbolContextItem&, lldb::SymbolContextItem) Line | Count | Source | 37 | 423k | inline Enum &operator|=(Enum &a, Enum b) { \ | 38 | 423k | a = a | b; \ | 39 | 423k | return a; \ | 40 | 423k | } \ |
lldb::operator|=(lldb::Permissions&, lldb::Permissions) Line | Count | Source | 37 | 5.23k | inline Enum &operator|=(Enum &a, Enum b) { \ | 38 | 5.23k | a = a | b; \ | 39 | 5.23k | return a; \ | 40 | 5.23k | } \ |
lldb::operator|=(lldb::FunctionNameType&, lldb::FunctionNameType) Line | Count | Source | 37 | 8.31k | inline Enum &operator|=(Enum &a, Enum b) { \ | 38 | 8.31k | a = a | b; \ | 39 | 8.31k | return a; \ | 40 | 8.31k | } \ |
|
41 | 0 | inline Enum &operator&=(Enum &a, Enum b) { \ |
42 | 0 | a = a & b; \ |
43 | 0 | return a; \ |
44 | 0 | } Unexecuted instantiation: lldb::operator&=(lldb::SymbolContextItem&, lldb::SymbolContextItem) Unexecuted instantiation: lldb::operator&=(lldb::Permissions&, lldb::Permissions) Unexecuted instantiation: lldb::operator&=(lldb::FunctionNameType&, lldb::FunctionNameType) Unexecuted instantiation: lldb::operator&=(lldb::TypeClass&, lldb::TypeClass) |
45 | | #else |
46 | | #define LLDB_MARK_AS_BITMASK_ENUM(Enum) |
47 | | #endif |
48 | | |
49 | | #ifndef SWIG |
50 | | // With MSVC, the default type of an enum is always signed, even if one of the |
51 | | // enumerator values is too large to fit into a signed integer but would |
52 | | // otherwise fit into an unsigned integer. As a result of this, all of LLDB's |
53 | | // flag-style enumerations that specify something like eValueFoo = 1u << 31 |
54 | | // result in negative values. This usually just results in a benign warning, |
55 | | // but in a few places we actually do comparisons on the enum values, which |
56 | | // would cause a real bug. Furthermore, there's no way to silence only this |
57 | | // warning, as it's part of -Wmicrosoft which also catches a whole slew of |
58 | | // other useful issues. |
59 | | // |
60 | | // To make matters worse, early versions of SWIG don't recognize the syntax of |
61 | | // specifying the underlying type of an enum (and Python doesn't care anyway) |
62 | | // so we need a way to specify the underlying type when the enum is being used |
63 | | // from C++ code, but just use a regular enum when swig is pre-processing. |
64 | | #define FLAGS_ENUM(Name) enum Name : unsigned |
65 | | #define FLAGS_ANONYMOUS_ENUM() enum : unsigned |
66 | | #else |
67 | | #define FLAGS_ENUM(Name) enum Name |
68 | | #define FLAGS_ANONYMOUS_ENUM() enum |
69 | | #endif |
70 | | |
71 | | namespace lldb { |
72 | | |
73 | | /// Process and Thread States. |
74 | | enum StateType { |
75 | | eStateInvalid = 0, |
76 | | eStateUnloaded, ///< Process is object is valid, but not currently loaded |
77 | | eStateConnected, ///< Process is connected to remote debug services, but not |
78 | | /// launched or attached to anything yet |
79 | | eStateAttaching, ///< Process is currently trying to attach |
80 | | eStateLaunching, ///< Process is in the process of launching |
81 | | // The state changes eStateAttaching and eStateLaunching are both sent while |
82 | | // the private state thread is either not yet started or paused. For that |
83 | | // reason, they should only be signaled as public state changes, and not |
84 | | // private state changes. |
85 | | eStateStopped, ///< Process or thread is stopped and can be examined. |
86 | | eStateRunning, ///< Process or thread is running and can't be examined. |
87 | | eStateStepping, ///< Process or thread is in the process of stepping and can |
88 | | /// not be examined. |
89 | | eStateCrashed, ///< Process or thread has crashed and can be examined. |
90 | | eStateDetached, ///< Process has been detached and can't be examined. |
91 | | eStateExited, ///< Process has exited and can't be examined. |
92 | | eStateSuspended, ///< Process or thread is in a suspended state as far |
93 | | ///< as the debugger is concerned while other processes |
94 | | ///< or threads get the chance to run. |
95 | | kLastStateType = eStateSuspended |
96 | | }; |
97 | | |
98 | | /// Launch Flags. |
99 | | FLAGS_ENUM(LaunchFlags){ |
100 | | eLaunchFlagNone = 0u, |
101 | | eLaunchFlagExec = (1u << 0), ///< Exec when launching and turn the calling |
102 | | /// process into a new process |
103 | | eLaunchFlagDebug = (1u << 1), ///< Stop as soon as the process launches to |
104 | | /// allow the process to be debugged |
105 | | eLaunchFlagStopAtEntry = (1u |
106 | | << 2), ///< Stop at the program entry point |
107 | | /// instead of auto-continuing when |
108 | | /// launching or attaching at entry point |
109 | | eLaunchFlagDisableASLR = |
110 | | (1u << 3), ///< Disable Address Space Layout Randomization |
111 | | eLaunchFlagDisableSTDIO = |
112 | | (1u << 4), ///< Disable stdio for inferior process (e.g. for a GUI app) |
113 | | eLaunchFlagLaunchInTTY = |
114 | | (1u << 5), ///< Launch the process in a new TTY if supported by the host |
115 | | eLaunchFlagLaunchInShell = |
116 | | (1u << 6), ///< Launch the process inside a shell to get shell expansion |
117 | | eLaunchFlagLaunchInSeparateProcessGroup = |
118 | | (1u << 7), ///< Launch the process in a separate process group |
119 | | ///< If you are going to hand the process off (e.g. to |
120 | | ///< debugserver) |
121 | | eLaunchFlagDontSetExitStatus = (1u << 8), |
122 | | ///< set this flag so lldb & the handee don't race to set its exit status. |
123 | | eLaunchFlagDetachOnError = (1u << 9), ///< If set, then the client stub |
124 | | ///< should detach rather than killing |
125 | | ///< the debugee |
126 | | ///< if it loses connection with lldb. |
127 | | eLaunchFlagShellExpandArguments = |
128 | | (1u << 10), ///< Perform shell-style argument expansion |
129 | | eLaunchFlagCloseTTYOnExit = (1u << 11), ///< Close the open TTY on exit |
130 | | eLaunchFlagInheritTCCFromParent = |
131 | | (1u << 12), ///< Don't make the inferior responsible for its own TCC |
132 | | ///< permissions but instead inherit them from its parent. |
133 | | }; |
134 | | |
135 | | /// Thread Run Modes. |
136 | | enum RunMode { eOnlyThisThread, eAllThreads, eOnlyDuringStepping }; |
137 | | |
138 | | /// Byte ordering definitions. |
139 | | enum ByteOrder { |
140 | | eByteOrderInvalid = 0, |
141 | | eByteOrderBig = 1, |
142 | | eByteOrderPDP = 2, |
143 | | eByteOrderLittle = 4 |
144 | | }; |
145 | | |
146 | | /// Register encoding definitions. |
147 | | enum Encoding { |
148 | | eEncodingInvalid = 0, |
149 | | eEncodingUint, ///< unsigned integer |
150 | | eEncodingSint, ///< signed integer |
151 | | eEncodingIEEE754, ///< float |
152 | | eEncodingVector ///< vector registers |
153 | | }; |
154 | | |
155 | | /// Display format definitions. |
156 | | enum Format { |
157 | | eFormatDefault = 0, |
158 | | eFormatInvalid = 0, |
159 | | eFormatBoolean, |
160 | | eFormatBinary, |
161 | | eFormatBytes, |
162 | | eFormatBytesWithASCII, |
163 | | eFormatChar, |
164 | | eFormatCharPrintable, ///< Only printable characters, '.' if not printable |
165 | | eFormatComplex, ///< Floating point complex type |
166 | | eFormatComplexFloat = eFormatComplex, |
167 | | eFormatCString, ///< NULL terminated C strings |
168 | | eFormatDecimal, |
169 | | eFormatEnum, |
170 | | eFormatHex, |
171 | | eFormatHexUppercase, |
172 | | eFormatFloat, |
173 | | eFormatOctal, |
174 | | eFormatOSType, ///< OS character codes encoded into an integer 'PICT' 'text' |
175 | | ///< etc... |
176 | | eFormatUnicode16, |
177 | | eFormatUnicode32, |
178 | | eFormatUnsigned, |
179 | | eFormatPointer, |
180 | | eFormatVectorOfChar, |
181 | | eFormatVectorOfSInt8, |
182 | | eFormatVectorOfUInt8, |
183 | | eFormatVectorOfSInt16, |
184 | | eFormatVectorOfUInt16, |
185 | | eFormatVectorOfSInt32, |
186 | | eFormatVectorOfUInt32, |
187 | | eFormatVectorOfSInt64, |
188 | | eFormatVectorOfUInt64, |
189 | | eFormatVectorOfFloat16, |
190 | | eFormatVectorOfFloat32, |
191 | | eFormatVectorOfFloat64, |
192 | | eFormatVectorOfUInt128, |
193 | | eFormatComplexInteger, ///< Integer complex type |
194 | | eFormatCharArray, ///< Print characters with no single quotes, used for |
195 | | ///< character arrays that can contain non printable |
196 | | ///< characters |
197 | | eFormatAddressInfo, ///< Describe what an address points to (func + offset |
198 | | ///< with file/line, symbol + offset, data, etc) |
199 | | eFormatHexFloat, ///< ISO C99 hex float string |
200 | | eFormatInstruction, ///< Disassemble an opcode |
201 | | eFormatVoid, ///< Do not print this |
202 | | eFormatUnicode8, |
203 | | kNumFormats |
204 | | }; |
205 | | |
206 | | /// Description levels for "void GetDescription(Stream *, DescriptionLevel)" |
207 | | /// calls. |
208 | | enum DescriptionLevel { |
209 | | eDescriptionLevelBrief = 0, |
210 | | eDescriptionLevelFull, |
211 | | eDescriptionLevelVerbose, |
212 | | eDescriptionLevelInitial, |
213 | | kNumDescriptionLevels |
214 | | }; |
215 | | |
216 | | /// Script interpreter types. |
217 | | enum ScriptLanguage { |
218 | | eScriptLanguageNone = 0, |
219 | | eScriptLanguagePython, |
220 | | eScriptLanguageLua, |
221 | | eScriptLanguageUnknown, |
222 | | eScriptLanguageDefault = eScriptLanguagePython |
223 | | }; |
224 | | |
225 | | /// Register numbering types. |
226 | | // See RegisterContext::ConvertRegisterKindToRegisterNumber to convert any of |
227 | | // these to the lldb internal register numbering scheme (eRegisterKindLLDB). |
228 | | enum RegisterKind { |
229 | | eRegisterKindEHFrame = 0, ///< the register numbers seen in eh_frame |
230 | | eRegisterKindDWARF, ///< the register numbers seen DWARF |
231 | | eRegisterKindGeneric, ///< insn ptr reg, stack ptr reg, etc not specific to |
232 | | ///< any particular target |
233 | | eRegisterKindProcessPlugin, ///< num used by the process plugin - e.g. by the |
234 | | ///< remote gdb-protocol stub program |
235 | | eRegisterKindLLDB, ///< lldb's internal register numbers |
236 | | kNumRegisterKinds |
237 | | }; |
238 | | |
239 | | /// Thread stop reasons. |
240 | | enum StopReason { |
241 | | eStopReasonInvalid = 0, |
242 | | eStopReasonNone, |
243 | | eStopReasonTrace, |
244 | | eStopReasonBreakpoint, |
245 | | eStopReasonWatchpoint, |
246 | | eStopReasonSignal, |
247 | | eStopReasonException, |
248 | | eStopReasonExec, ///< Program was re-exec'ed |
249 | | eStopReasonPlanComplete, |
250 | | eStopReasonThreadExiting, |
251 | | eStopReasonInstrumentation, |
252 | | eStopReasonProcessorTrace, |
253 | | eStopReasonFork, |
254 | | eStopReasonVFork, |
255 | | eStopReasonVForkDone, |
256 | | }; |
257 | | |
258 | | /// Command Return Status Types. |
259 | | enum ReturnStatus { |
260 | | eReturnStatusInvalid, |
261 | | eReturnStatusSuccessFinishNoResult, |
262 | | eReturnStatusSuccessFinishResult, |
263 | | eReturnStatusSuccessContinuingNoResult, |
264 | | eReturnStatusSuccessContinuingResult, |
265 | | eReturnStatusStarted, |
266 | | eReturnStatusFailed, |
267 | | eReturnStatusQuit |
268 | | }; |
269 | | |
270 | | /// The results of expression evaluation. |
271 | | enum ExpressionResults { |
272 | | eExpressionCompleted = 0, |
273 | | eExpressionSetupError, |
274 | | eExpressionParseError, |
275 | | eExpressionDiscarded, |
276 | | eExpressionInterrupted, |
277 | | eExpressionHitBreakpoint, |
278 | | eExpressionTimedOut, |
279 | | eExpressionResultUnavailable, |
280 | | eExpressionStoppedForDebug, |
281 | | eExpressionThreadVanished |
282 | | }; |
283 | | |
284 | | enum SearchDepth { |
285 | | eSearchDepthInvalid = 0, |
286 | | eSearchDepthTarget, |
287 | | eSearchDepthModule, |
288 | | eSearchDepthCompUnit, |
289 | | eSearchDepthFunction, |
290 | | eSearchDepthBlock, |
291 | | eSearchDepthAddress, |
292 | | kLastSearchDepthKind = eSearchDepthAddress |
293 | | }; |
294 | | |
295 | | /// Connection Status Types. |
296 | | enum ConnectionStatus { |
297 | | eConnectionStatusSuccess, ///< Success |
298 | | eConnectionStatusEndOfFile, ///< End-of-file encountered |
299 | | eConnectionStatusError, ///< Check GetError() for details |
300 | | eConnectionStatusTimedOut, ///< Request timed out |
301 | | eConnectionStatusNoConnection, ///< No connection |
302 | | eConnectionStatusLostConnection, ///< Lost connection while connected to a |
303 | | ///< valid connection |
304 | | eConnectionStatusInterrupted ///< Interrupted read |
305 | | }; |
306 | | |
307 | | enum ErrorType { |
308 | | eErrorTypeInvalid, |
309 | | eErrorTypeGeneric, ///< Generic errors that can be any value. |
310 | | eErrorTypeMachKernel, ///< Mach kernel error codes. |
311 | | eErrorTypePOSIX, ///< POSIX error codes. |
312 | | eErrorTypeExpression, ///< These are from the ExpressionResults enum. |
313 | | eErrorTypeWin32 ///< Standard Win32 error codes. |
314 | | }; |
315 | | |
316 | | enum ValueType { |
317 | | eValueTypeInvalid = 0, |
318 | | eValueTypeVariableGlobal = 1, ///< globals variable |
319 | | eValueTypeVariableStatic = 2, ///< static variable |
320 | | eValueTypeVariableArgument = 3, ///< function argument variables |
321 | | eValueTypeVariableLocal = 4, ///< function local variables |
322 | | eValueTypeRegister = 5, ///< stack frame register value |
323 | | eValueTypeRegisterSet = 6, ///< A collection of stack frame register values |
324 | | eValueTypeConstResult = 7, ///< constant result variables |
325 | | eValueTypeVariableThreadLocal = 8 ///< thread local storage variable |
326 | | }; |
327 | | |
328 | | /// Token size/granularities for Input Readers. |
329 | | |
330 | | enum InputReaderGranularity { |
331 | | eInputReaderGranularityInvalid = 0, |
332 | | eInputReaderGranularityByte, |
333 | | eInputReaderGranularityWord, |
334 | | eInputReaderGranularityLine, |
335 | | eInputReaderGranularityAll |
336 | | }; |
337 | | |
338 | | /// These mask bits allow a common interface for queries that can |
339 | | /// limit the amount of information that gets parsed to only the |
340 | | /// information that is requested. These bits also can indicate what |
341 | | /// actually did get resolved during query function calls. |
342 | | /// |
343 | | /// Each definition corresponds to a one of the member variables |
344 | | /// in this class, and requests that that item be resolved, or |
345 | | /// indicates that the member did get resolved. |
346 | | FLAGS_ENUM(SymbolContextItem){ |
347 | | /// Set when \a target is requested from a query, or was located |
348 | | /// in query results |
349 | | eSymbolContextTarget = (1u << 0), |
350 | | /// Set when \a module is requested from a query, or was located |
351 | | /// in query results |
352 | | eSymbolContextModule = (1u << 1), |
353 | | /// Set when \a comp_unit is requested from a query, or was |
354 | | /// located in query results |
355 | | eSymbolContextCompUnit = (1u << 2), |
356 | | /// Set when \a function is requested from a query, or was located |
357 | | /// in query results |
358 | | eSymbolContextFunction = (1u << 3), |
359 | | /// Set when the deepest \a block is requested from a query, or |
360 | | /// was located in query results |
361 | | eSymbolContextBlock = (1u << 4), |
362 | | /// Set when \a line_entry is requested from a query, or was |
363 | | /// located in query results |
364 | | eSymbolContextLineEntry = (1u << 5), |
365 | | /// Set when \a symbol is requested from a query, or was located |
366 | | /// in query results |
367 | | eSymbolContextSymbol = (1u << 6), |
368 | | /// Indicates to try and lookup everything up during a routine |
369 | | /// symbol context query. |
370 | | eSymbolContextEverything = ((eSymbolContextSymbol << 1) - 1u), |
371 | | /// Set when \a global or static variable is requested from a |
372 | | /// query, or was located in query results. |
373 | | /// eSymbolContextVariable is potentially expensive to lookup so |
374 | | /// it isn't included in eSymbolContextEverything which stops it |
375 | | /// from being used during frame PC lookups and many other |
376 | | /// potential address to symbol context lookups. |
377 | | eSymbolContextVariable = (1u << 7), |
378 | | |
379 | | // Keep this last and up-to-date for what the last enum value is. |
380 | | eSymbolContextLastItem = eSymbolContextVariable, |
381 | | }; |
382 | | LLDB_MARK_AS_BITMASK_ENUM(SymbolContextItem) |
383 | | |
384 | | FLAGS_ENUM(Permissions){ePermissionsWritable = (1u << 0), |
385 | | ePermissionsReadable = (1u << 1), |
386 | | ePermissionsExecutable = (1u << 2)}; |
387 | | LLDB_MARK_AS_BITMASK_ENUM(Permissions) |
388 | | |
389 | | enum InputReaderAction { |
390 | | eInputReaderActivate, ///< reader is newly pushed onto the reader stack |
391 | | eInputReaderAsynchronousOutputWritten, ///< an async output event occurred; |
392 | | ///< the reader may want to do |
393 | | ///< something |
394 | | eInputReaderReactivate, ///< reader is on top of the stack again after another |
395 | | ///< reader was popped off |
396 | | eInputReaderDeactivate, ///< another reader was pushed on the stack |
397 | | eInputReaderGotToken, ///< reader got one of its tokens (granularity) |
398 | | eInputReaderInterrupt, ///< reader received an interrupt signal (probably from |
399 | | ///< a control-c) |
400 | | eInputReaderEndOfFile, ///< reader received an EOF char (probably from a |
401 | | ///< control-d) |
402 | | eInputReaderDone ///< reader was just popped off the stack and is done |
403 | | }; |
404 | | |
405 | | FLAGS_ENUM(BreakpointEventType){ |
406 | | eBreakpointEventTypeInvalidType = (1u << 0), |
407 | | eBreakpointEventTypeAdded = (1u << 1), |
408 | | eBreakpointEventTypeRemoved = (1u << 2), |
409 | | eBreakpointEventTypeLocationsAdded = (1u << 3), ///< Locations added doesn't |
410 | | ///< get sent when the |
411 | | ///< breakpoint is created |
412 | | eBreakpointEventTypeLocationsRemoved = (1u << 4), |
413 | | eBreakpointEventTypeLocationsResolved = (1u << 5), |
414 | | eBreakpointEventTypeEnabled = (1u << 6), |
415 | | eBreakpointEventTypeDisabled = (1u << 7), |
416 | | eBreakpointEventTypeCommandChanged = (1u << 8), |
417 | | eBreakpointEventTypeConditionChanged = (1u << 9), |
418 | | eBreakpointEventTypeIgnoreChanged = (1u << 10), |
419 | | eBreakpointEventTypeThreadChanged = (1u << 11), |
420 | | eBreakpointEventTypeAutoContinueChanged = (1u << 12)}; |
421 | | |
422 | | FLAGS_ENUM(WatchpointEventType){ |
423 | | eWatchpointEventTypeInvalidType = (1u << 0), |
424 | | eWatchpointEventTypeAdded = (1u << 1), |
425 | | eWatchpointEventTypeRemoved = (1u << 2), |
426 | | eWatchpointEventTypeEnabled = (1u << 6), |
427 | | eWatchpointEventTypeDisabled = (1u << 7), |
428 | | eWatchpointEventTypeCommandChanged = (1u << 8), |
429 | | eWatchpointEventTypeConditionChanged = (1u << 9), |
430 | | eWatchpointEventTypeIgnoreChanged = (1u << 10), |
431 | | eWatchpointEventTypeThreadChanged = (1u << 11), |
432 | | eWatchpointEventTypeTypeChanged = (1u << 12)}; |
433 | | |
434 | | enum WatchpointWriteType { |
435 | | /// Don't stop when the watched memory region is written to. |
436 | | eWatchpointWriteTypeDisabled, |
437 | | /// Stop on any write access to the memory region, even if |
438 | | /// the value doesn't change. On some architectures, a write |
439 | | /// near the memory region may be falsely reported as a match, |
440 | | /// and notify this spurious stop as a watchpoint trap. |
441 | | eWatchpointWriteTypeAlways, |
442 | | /// Stop on a write to the memory region that changes its value. |
443 | | /// This is most likely the behavior a user expects, and is the |
444 | | /// behavior in gdb. lldb can silently ignore writes near the |
445 | | /// watched memory region that are reported as accesses to lldb. |
446 | | eWatchpointWriteTypeOnModify |
447 | | }; |
448 | | |
449 | | /// Programming language type. |
450 | | /// |
451 | | /// These enumerations use the same language enumerations as the DWARF |
452 | | /// specification for ease of use and consistency. |
453 | | /// The enum -> string code is in Language.cpp, don't change this |
454 | | /// table without updating that code as well. |
455 | | /// |
456 | | /// This datatype is used in SBExpressionOptions::SetLanguage() which |
457 | | /// makes this type API. Do not change its underlying storage type! |
458 | | enum LanguageType { |
459 | | eLanguageTypeUnknown = 0x0000, ///< Unknown or invalid language value. |
460 | | eLanguageTypeC89 = 0x0001, ///< ISO C:1989. |
461 | | eLanguageTypeC = 0x0002, ///< Non-standardized C, such as K&R. |
462 | | eLanguageTypeAda83 = 0x0003, ///< ISO Ada:1983. |
463 | | eLanguageTypeC_plus_plus = 0x0004, ///< ISO C++:1998. |
464 | | eLanguageTypeCobol74 = 0x0005, ///< ISO Cobol:1974. |
465 | | eLanguageTypeCobol85 = 0x0006, ///< ISO Cobol:1985. |
466 | | eLanguageTypeFortran77 = 0x0007, ///< ISO Fortran 77. |
467 | | eLanguageTypeFortran90 = 0x0008, ///< ISO Fortran 90. |
468 | | eLanguageTypePascal83 = 0x0009, ///< ISO Pascal:1983. |
469 | | eLanguageTypeModula2 = 0x000a, ///< ISO Modula-2:1996. |
470 | | eLanguageTypeJava = 0x000b, ///< Java. |
471 | | eLanguageTypeC99 = 0x000c, ///< ISO C:1999. |
472 | | eLanguageTypeAda95 = 0x000d, ///< ISO Ada:1995. |
473 | | eLanguageTypeFortran95 = 0x000e, ///< ISO Fortran 95. |
474 | | eLanguageTypePLI = 0x000f, ///< ANSI PL/I:1976. |
475 | | eLanguageTypeObjC = 0x0010, ///< Objective-C. |
476 | | eLanguageTypeObjC_plus_plus = 0x0011, ///< Objective-C++. |
477 | | eLanguageTypeUPC = 0x0012, ///< Unified Parallel C. |
478 | | eLanguageTypeD = 0x0013, ///< D. |
479 | | eLanguageTypePython = 0x0014, ///< Python. |
480 | | // NOTE: The below are DWARF5 constants, subject to change upon |
481 | | // completion of the DWARF5 specification |
482 | | eLanguageTypeOpenCL = 0x0015, ///< OpenCL. |
483 | | eLanguageTypeGo = 0x0016, ///< Go. |
484 | | eLanguageTypeModula3 = 0x0017, ///< Modula 3. |
485 | | eLanguageTypeHaskell = 0x0018, ///< Haskell. |
486 | | eLanguageTypeC_plus_plus_03 = 0x0019, ///< ISO C++:2003. |
487 | | eLanguageTypeC_plus_plus_11 = 0x001a, ///< ISO C++:2011. |
488 | | eLanguageTypeOCaml = 0x001b, ///< OCaml. |
489 | | eLanguageTypeRust = 0x001c, ///< Rust. |
490 | | eLanguageTypeC11 = 0x001d, ///< ISO C:2011. |
491 | | eLanguageTypeSwift = 0x001e, ///< Swift. |
492 | | eLanguageTypeJulia = 0x001f, ///< Julia. |
493 | | eLanguageTypeDylan = 0x0020, ///< Dylan. |
494 | | eLanguageTypeC_plus_plus_14 = 0x0021, ///< ISO C++:2014. |
495 | | eLanguageTypeFortran03 = 0x0022, ///< ISO Fortran 2003. |
496 | | eLanguageTypeFortran08 = 0x0023, ///< ISO Fortran 2008. |
497 | | eLanguageTypeRenderScript = 0x0024, |
498 | | eLanguageTypeBLISS = 0x0025, |
499 | | eLanguageTypeKotlin = 0x0026, |
500 | | eLanguageTypeZig = 0x0027, |
501 | | eLanguageTypeCrystal = 0x0028, |
502 | | eLanguageTypeC_plus_plus_17 = 0x002a, ///< ISO C++:2017. |
503 | | eLanguageTypeC_plus_plus_20 = 0x002b, ///< ISO C++:2020. |
504 | | eLanguageTypeC17 = 0x002c, |
505 | | eLanguageTypeFortran18 = 0x002d, |
506 | | eLanguageTypeAda2005 = 0x002e, |
507 | | eLanguageTypeAda2012 = 0x002f, |
508 | | eLanguageTypeHIP = 0x0030, |
509 | | eLanguageTypeAssembly = 0x0031, |
510 | | eLanguageTypeC_sharp = 0x0032, |
511 | | eLanguageTypeMojo = 0x0033, |
512 | | |
513 | | // Vendor Extensions |
514 | | // Note: Language::GetNameForLanguageType |
515 | | // assumes these can be used as indexes into array language_names, and |
516 | | // Language::SetLanguageFromCString and Language::AsCString assume these can |
517 | | // be used as indexes into array g_languages. |
518 | | eLanguageTypeMipsAssembler, ///< Mips_Assembler. |
519 | | // Mojo will move to the common list of languages once the DWARF committee |
520 | | // creates a language code for it. |
521 | | eNumLanguageTypes |
522 | | }; |
523 | | |
524 | | enum InstrumentationRuntimeType { |
525 | | eInstrumentationRuntimeTypeAddressSanitizer = 0x0000, |
526 | | eInstrumentationRuntimeTypeThreadSanitizer = 0x0001, |
527 | | eInstrumentationRuntimeTypeUndefinedBehaviorSanitizer = 0x0002, |
528 | | eInstrumentationRuntimeTypeMainThreadChecker = 0x0003, |
529 | | eInstrumentationRuntimeTypeSwiftRuntimeReporting = 0x0004, |
530 | | eNumInstrumentationRuntimeTypes |
531 | | }; |
532 | | |
533 | | enum DynamicValueType { |
534 | | eNoDynamicValues = 0, |
535 | | eDynamicCanRunTarget = 1, |
536 | | eDynamicDontRunTarget = 2 |
537 | | }; |
538 | | |
539 | | enum StopShowColumn { |
540 | | eStopShowColumnAnsiOrCaret = 0, |
541 | | eStopShowColumnAnsi = 1, |
542 | | eStopShowColumnCaret = 2, |
543 | | eStopShowColumnNone = 3 |
544 | | }; |
545 | | |
546 | | enum AccessType { |
547 | | eAccessNone, |
548 | | eAccessPublic, |
549 | | eAccessPrivate, |
550 | | eAccessProtected, |
551 | | eAccessPackage |
552 | | }; |
553 | | |
554 | | enum CommandArgumentType { |
555 | | eArgTypeAddress = 0, |
556 | | eArgTypeAddressOrExpression, |
557 | | eArgTypeAliasName, |
558 | | eArgTypeAliasOptions, |
559 | | eArgTypeArchitecture, |
560 | | eArgTypeBoolean, |
561 | | eArgTypeBreakpointID, |
562 | | eArgTypeBreakpointIDRange, |
563 | | eArgTypeBreakpointName, |
564 | | eArgTypeByteSize, |
565 | | eArgTypeClassName, |
566 | | eArgTypeCommandName, |
567 | | eArgTypeCount, |
568 | | eArgTypeDescriptionVerbosity, |
569 | | eArgTypeDirectoryName, |
570 | | eArgTypeDisassemblyFlavor, |
571 | | eArgTypeEndAddress, |
572 | | eArgTypeExpression, |
573 | | eArgTypeExpressionPath, |
574 | | eArgTypeExprFormat, |
575 | | eArgTypeFileLineColumn, |
576 | | eArgTypeFilename, |
577 | | eArgTypeFormat, |
578 | | eArgTypeFrameIndex, |
579 | | eArgTypeFullName, |
580 | | eArgTypeFunctionName, |
581 | | eArgTypeFunctionOrSymbol, |
582 | | eArgTypeGDBFormat, |
583 | | eArgTypeHelpText, |
584 | | eArgTypeIndex, |
585 | | eArgTypeLanguage, |
586 | | eArgTypeLineNum, |
587 | | eArgTypeLogCategory, |
588 | | eArgTypeLogChannel, |
589 | | eArgTypeMethod, |
590 | | eArgTypeName, |
591 | | eArgTypeNewPathPrefix, |
592 | | eArgTypeNumLines, |
593 | | eArgTypeNumberPerLine, |
594 | | eArgTypeOffset, |
595 | | eArgTypeOldPathPrefix, |
596 | | eArgTypeOneLiner, |
597 | | eArgTypePath, |
598 | | eArgTypePermissionsNumber, |
599 | | eArgTypePermissionsString, |
600 | | eArgTypePid, |
601 | | eArgTypePlugin, |
602 | | eArgTypeProcessName, |
603 | | eArgTypePythonClass, |
604 | | eArgTypePythonFunction, |
605 | | eArgTypePythonScript, |
606 | | eArgTypeQueueName, |
607 | | eArgTypeRegisterName, |
608 | | eArgTypeRegularExpression, |
609 | | eArgTypeRunArgs, |
610 | | eArgTypeRunMode, |
611 | | eArgTypeScriptedCommandSynchronicity, |
612 | | eArgTypeScriptLang, |
613 | | eArgTypeSearchWord, |
614 | | eArgTypeSelector, |
615 | | eArgTypeSettingIndex, |
616 | | eArgTypeSettingKey, |
617 | | eArgTypeSettingPrefix, |
618 | | eArgTypeSettingVariableName, |
619 | | eArgTypeShlibName, |
620 | | eArgTypeSourceFile, |
621 | | eArgTypeSortOrder, |
622 | | eArgTypeStartAddress, |
623 | | eArgTypeSummaryString, |
624 | | eArgTypeSymbol, |
625 | | eArgTypeThreadID, |
626 | | eArgTypeThreadIndex, |
627 | | eArgTypeThreadName, |
628 | | eArgTypeTypeName, |
629 | | eArgTypeUnsignedInteger, |
630 | | eArgTypeUnixSignal, |
631 | | eArgTypeVarName, |
632 | | eArgTypeValue, |
633 | | eArgTypeWidth, |
634 | | eArgTypeNone, |
635 | | eArgTypePlatform, |
636 | | eArgTypeWatchpointID, |
637 | | eArgTypeWatchpointIDRange, |
638 | | eArgTypeWatchType, |
639 | | eArgRawInput, |
640 | | eArgTypeCommand, |
641 | | eArgTypeColumnNum, |
642 | | eArgTypeModuleUUID, |
643 | | eArgTypeSaveCoreStyle, |
644 | | eArgTypeLogHandler, |
645 | | eArgTypeSEDStylePair, |
646 | | eArgTypeRecognizerID, |
647 | | eArgTypeConnectURL, |
648 | | eArgTypeTargetID, |
649 | | eArgTypeStopHookID, |
650 | | eArgTypeCompletionType, |
651 | | eArgTypeLastArg // Always keep this entry as the last entry in this |
652 | | // enumeration!! |
653 | | }; |
654 | | |
655 | | /// Symbol types. |
656 | | // Symbol holds the SymbolType in a 6-bit field (m_type), so if you get over 63 |
657 | | // entries you will have to resize that field. |
658 | | enum SymbolType { |
659 | | eSymbolTypeAny = 0, |
660 | | eSymbolTypeInvalid = 0, |
661 | | eSymbolTypeAbsolute, |
662 | | eSymbolTypeCode, |
663 | | eSymbolTypeResolver, |
664 | | eSymbolTypeData, |
665 | | eSymbolTypeTrampoline, |
666 | | eSymbolTypeRuntime, |
667 | | eSymbolTypeException, |
668 | | eSymbolTypeSourceFile, |
669 | | eSymbolTypeHeaderFile, |
670 | | eSymbolTypeObjectFile, |
671 | | eSymbolTypeCommonBlock, |
672 | | eSymbolTypeBlock, |
673 | | eSymbolTypeLocal, |
674 | | eSymbolTypeParam, |
675 | | eSymbolTypeVariable, |
676 | | eSymbolTypeVariableType, |
677 | | eSymbolTypeLineEntry, |
678 | | eSymbolTypeLineHeader, |
679 | | eSymbolTypeScopeBegin, |
680 | | eSymbolTypeScopeEnd, |
681 | | eSymbolTypeAdditional, ///< When symbols take more than one entry, the extra |
682 | | ///< entries get this type |
683 | | eSymbolTypeCompiler, |
684 | | eSymbolTypeInstrumentation, |
685 | | eSymbolTypeUndefined, |
686 | | eSymbolTypeObjCClass, |
687 | | eSymbolTypeObjCMetaClass, |
688 | | eSymbolTypeObjCIVar, |
689 | | eSymbolTypeReExported |
690 | | }; |
691 | | |
692 | | enum SectionType { |
693 | | eSectionTypeInvalid, |
694 | | eSectionTypeCode, |
695 | | eSectionTypeContainer, ///< The section contains child sections |
696 | | eSectionTypeData, |
697 | | eSectionTypeDataCString, ///< Inlined C string data |
698 | | eSectionTypeDataCStringPointers, ///< Pointers to C string data |
699 | | eSectionTypeDataSymbolAddress, ///< Address of a symbol in the symbol table |
700 | | eSectionTypeData4, |
701 | | eSectionTypeData8, |
702 | | eSectionTypeData16, |
703 | | eSectionTypeDataPointers, |
704 | | eSectionTypeDebug, |
705 | | eSectionTypeZeroFill, |
706 | | eSectionTypeDataObjCMessageRefs, ///< Pointer to function pointer + selector |
707 | | eSectionTypeDataObjCCFStrings, ///< Objective-C const CFString/NSString |
708 | | ///< objects |
709 | | eSectionTypeDWARFDebugAbbrev, |
710 | | eSectionTypeDWARFDebugAddr, |
711 | | eSectionTypeDWARFDebugAranges, |
712 | | eSectionTypeDWARFDebugCuIndex, |
713 | | eSectionTypeDWARFDebugFrame, |
714 | | eSectionTypeDWARFDebugInfo, |
715 | | eSectionTypeDWARFDebugLine, |
716 | | eSectionTypeDWARFDebugLoc, |
717 | | eSectionTypeDWARFDebugMacInfo, |
718 | | eSectionTypeDWARFDebugMacro, |
719 | | eSectionTypeDWARFDebugPubNames, |
720 | | eSectionTypeDWARFDebugPubTypes, |
721 | | eSectionTypeDWARFDebugRanges, |
722 | | eSectionTypeDWARFDebugStr, |
723 | | eSectionTypeDWARFDebugStrOffsets, |
724 | | eSectionTypeDWARFAppleNames, |
725 | | eSectionTypeDWARFAppleTypes, |
726 | | eSectionTypeDWARFAppleNamespaces, |
727 | | eSectionTypeDWARFAppleObjC, |
728 | | eSectionTypeELFSymbolTable, ///< Elf SHT_SYMTAB section |
729 | | eSectionTypeELFDynamicSymbols, ///< Elf SHT_DYNSYM section |
730 | | eSectionTypeELFRelocationEntries, ///< Elf SHT_REL or SHT_REL section |
731 | | eSectionTypeELFDynamicLinkInfo, ///< Elf SHT_DYNAMIC section |
732 | | eSectionTypeEHFrame, |
733 | | eSectionTypeARMexidx, |
734 | | eSectionTypeARMextab, |
735 | | eSectionTypeCompactUnwind, ///< compact unwind section in Mach-O, |
736 | | ///< __TEXT,__unwind_info |
737 | | eSectionTypeGoSymtab, |
738 | | eSectionTypeAbsoluteAddress, ///< Dummy section for symbols with absolute |
739 | | ///< address |
740 | | eSectionTypeDWARFGNUDebugAltLink, |
741 | | eSectionTypeDWARFDebugTypes, ///< DWARF .debug_types section |
742 | | eSectionTypeDWARFDebugNames, ///< DWARF v5 .debug_names |
743 | | eSectionTypeOther, |
744 | | eSectionTypeDWARFDebugLineStr, ///< DWARF v5 .debug_line_str |
745 | | eSectionTypeDWARFDebugRngLists, ///< DWARF v5 .debug_rnglists |
746 | | eSectionTypeDWARFDebugLocLists, ///< DWARF v5 .debug_loclists |
747 | | eSectionTypeDWARFDebugAbbrevDwo, |
748 | | eSectionTypeDWARFDebugInfoDwo, |
749 | | eSectionTypeDWARFDebugStrDwo, |
750 | | eSectionTypeDWARFDebugStrOffsetsDwo, |
751 | | eSectionTypeDWARFDebugTypesDwo, |
752 | | eSectionTypeDWARFDebugRngListsDwo, |
753 | | eSectionTypeDWARFDebugLocDwo, |
754 | | eSectionTypeDWARFDebugLocListsDwo, |
755 | | eSectionTypeDWARFDebugTuIndex, |
756 | | eSectionTypeCTF, |
757 | | eSectionTypeSwiftModules, |
758 | | }; |
759 | | |
760 | | FLAGS_ENUM(EmulateInstructionOptions){ |
761 | | eEmulateInstructionOptionNone = (0u), |
762 | | eEmulateInstructionOptionAutoAdvancePC = (1u << 0), |
763 | | eEmulateInstructionOptionIgnoreConditions = (1u << 1)}; |
764 | | |
765 | | FLAGS_ENUM(FunctionNameType){ |
766 | | eFunctionNameTypeNone = 0u, |
767 | | eFunctionNameTypeAuto = |
768 | | (1u << 1), ///< Automatically figure out which FunctionNameType |
769 | | ///< bits to set based on the function name. |
770 | | eFunctionNameTypeFull = (1u << 2), ///< The function name. |
771 | | ///< For C this is the same as just the name of the function For C++ this is |
772 | | ///< the mangled or demangled version of the mangled name. For ObjC this is |
773 | | ///< the full function signature with the + or - and the square brackets and |
774 | | ///< the class and selector |
775 | | eFunctionNameTypeBase = (1u |
776 | | << 3), ///< The function name only, no namespaces |
777 | | ///< or arguments and no class |
778 | | ///< methods or selectors will be searched. |
779 | | eFunctionNameTypeMethod = (1u << 4), ///< Find function by method name (C++) |
780 | | ///< with no namespace or arguments |
781 | | eFunctionNameTypeSelector = |
782 | | (1u << 5), ///< Find function by selector name (ObjC) names |
783 | | eFunctionNameTypeAny = |
784 | | eFunctionNameTypeAuto ///< DEPRECATED: use eFunctionNameTypeAuto |
785 | | }; |
786 | | LLDB_MARK_AS_BITMASK_ENUM(FunctionNameType) |
787 | | |
788 | | /// Basic types enumeration for the public API SBType::GetBasicType(). |
789 | | enum BasicType { |
790 | | eBasicTypeInvalid = 0, |
791 | | eBasicTypeVoid = 1, |
792 | | eBasicTypeChar, |
793 | | eBasicTypeSignedChar, |
794 | | eBasicTypeUnsignedChar, |
795 | | eBasicTypeWChar, |
796 | | eBasicTypeSignedWChar, |
797 | | eBasicTypeUnsignedWChar, |
798 | | eBasicTypeChar16, |
799 | | eBasicTypeChar32, |
800 | | eBasicTypeChar8, |
801 | | eBasicTypeShort, |
802 | | eBasicTypeUnsignedShort, |
803 | | eBasicTypeInt, |
804 | | eBasicTypeUnsignedInt, |
805 | | eBasicTypeLong, |
806 | | eBasicTypeUnsignedLong, |
807 | | eBasicTypeLongLong, |
808 | | eBasicTypeUnsignedLongLong, |
809 | | eBasicTypeInt128, |
810 | | eBasicTypeUnsignedInt128, |
811 | | eBasicTypeBool, |
812 | | eBasicTypeHalf, |
813 | | eBasicTypeFloat, |
814 | | eBasicTypeDouble, |
815 | | eBasicTypeLongDouble, |
816 | | eBasicTypeFloatComplex, |
817 | | eBasicTypeDoubleComplex, |
818 | | eBasicTypeLongDoubleComplex, |
819 | | eBasicTypeObjCID, |
820 | | eBasicTypeObjCClass, |
821 | | eBasicTypeObjCSel, |
822 | | eBasicTypeNullPtr, |
823 | | eBasicTypeOther |
824 | | }; |
825 | | |
826 | | /// Deprecated |
827 | | enum TraceType { |
828 | | eTraceTypeNone = 0, |
829 | | |
830 | | /// Intel Processor Trace |
831 | | eTraceTypeProcessorTrace |
832 | | }; |
833 | | |
834 | | enum StructuredDataType { |
835 | | eStructuredDataTypeInvalid = -1, |
836 | | eStructuredDataTypeNull = 0, |
837 | | eStructuredDataTypeGeneric, |
838 | | eStructuredDataTypeArray, |
839 | | eStructuredDataTypeInteger, |
840 | | eStructuredDataTypeFloat, |
841 | | eStructuredDataTypeBoolean, |
842 | | eStructuredDataTypeString, |
843 | | eStructuredDataTypeDictionary, |
844 | | eStructuredDataTypeSignedInteger, |
845 | | eStructuredDataTypeUnsignedInteger = eStructuredDataTypeInteger, |
846 | | }; |
847 | | |
848 | | FLAGS_ENUM(TypeClass){ |
849 | | eTypeClassInvalid = (0u), eTypeClassArray = (1u << 0), |
850 | | eTypeClassBlockPointer = (1u << 1), eTypeClassBuiltin = (1u << 2), |
851 | | eTypeClassClass = (1u << 3), eTypeClassComplexFloat = (1u << 4), |
852 | | eTypeClassComplexInteger = (1u << 5), eTypeClassEnumeration = (1u << 6), |
853 | | eTypeClassFunction = (1u << 7), eTypeClassMemberPointer = (1u << 8), |
854 | | eTypeClassObjCObject = (1u << 9), eTypeClassObjCInterface = (1u << 10), |
855 | | eTypeClassObjCObjectPointer = (1u << 11), eTypeClassPointer = (1u << 12), |
856 | | eTypeClassReference = (1u << 13), eTypeClassStruct = (1u << 14), |
857 | | eTypeClassTypedef = (1u << 15), eTypeClassUnion = (1u << 16), |
858 | | eTypeClassVector = (1u << 17), |
859 | | // Define the last type class as the MSBit of a 32 bit value |
860 | | eTypeClassOther = (1u << 31), |
861 | | // Define a mask that can be used for any type when finding types |
862 | | eTypeClassAny = (0xffffffffu)}; |
863 | | LLDB_MARK_AS_BITMASK_ENUM(TypeClass) |
864 | | |
865 | | enum TemplateArgumentKind { |
866 | | eTemplateArgumentKindNull = 0, |
867 | | eTemplateArgumentKindType, |
868 | | eTemplateArgumentKindDeclaration, |
869 | | eTemplateArgumentKindIntegral, |
870 | | eTemplateArgumentKindTemplate, |
871 | | eTemplateArgumentKindTemplateExpansion, |
872 | | eTemplateArgumentKindExpression, |
873 | | eTemplateArgumentKindPack, |
874 | | eTemplateArgumentKindNullPtr, |
875 | | }; |
876 | | |
877 | | /// Type of match to be performed when looking for a formatter for a data type. |
878 | | /// Used by classes like SBTypeNameSpecifier or lldb_private::TypeMatcher. |
879 | | enum FormatterMatchType { |
880 | | eFormatterMatchExact, |
881 | | eFormatterMatchRegex, |
882 | | eFormatterMatchCallback, |
883 | | |
884 | | eLastFormatterMatchType = eFormatterMatchCallback, |
885 | | }; |
886 | | |
887 | | /// Options that can be set for a formatter to alter its behavior. Not |
888 | | /// all of these are applicable to all formatter types. |
889 | | FLAGS_ENUM(TypeOptions){eTypeOptionNone = (0u), |
890 | | eTypeOptionCascade = (1u << 0), |
891 | | eTypeOptionSkipPointers = (1u << 1), |
892 | | eTypeOptionSkipReferences = (1u << 2), |
893 | | eTypeOptionHideChildren = (1u << 3), |
894 | | eTypeOptionHideValue = (1u << 4), |
895 | | eTypeOptionShowOneLiner = (1u << 5), |
896 | | eTypeOptionHideNames = (1u << 6), |
897 | | eTypeOptionNonCacheable = (1u << 7), |
898 | | eTypeOptionHideEmptyAggregates = (1u << 8), |
899 | | eTypeOptionFrontEndWantsDereference = (1u << 9)}; |
900 | | |
901 | | /// This is the return value for frame comparisons. If you are comparing frame |
902 | | /// A to frame B the following cases arise: |
903 | | /// |
904 | | /// 1) When frame A pushes frame B (or a frame that ends up pushing |
905 | | /// B) A is Older than B. |
906 | | /// |
907 | | /// 2) When frame A pushed frame B (or if frameA is on the stack |
908 | | /// but B is not) A is Younger than B. |
909 | | /// |
910 | | /// 3) When frame A and frame B have the same StackID, they are |
911 | | /// Equal. |
912 | | /// |
913 | | /// 4) When frame A and frame B have the same immediate parent |
914 | | /// frame, but are not equal, the comparison yields SameParent. |
915 | | /// |
916 | | /// 5) If the two frames are on different threads or processes the |
917 | | /// comparison is Invalid. |
918 | | /// |
919 | | /// 6) If for some reason we can't figure out what went on, we |
920 | | /// return Unknown. |
921 | | enum FrameComparison { |
922 | | eFrameCompareInvalid, |
923 | | eFrameCompareUnknown, |
924 | | eFrameCompareEqual, |
925 | | eFrameCompareSameParent, |
926 | | eFrameCompareYounger, |
927 | | eFrameCompareOlder |
928 | | }; |
929 | | |
930 | | /// File Permissions. |
931 | | /// |
932 | | /// Designed to mimic the unix file permission bits so they can be used with |
933 | | /// functions that set 'mode_t' to certain values for permissions. |
934 | | FLAGS_ENUM(FilePermissions){ |
935 | | eFilePermissionsUserRead = (1u << 8), |
936 | | eFilePermissionsUserWrite = (1u << 7), |
937 | | eFilePermissionsUserExecute = (1u << 6), |
938 | | eFilePermissionsGroupRead = (1u << 5), |
939 | | eFilePermissionsGroupWrite = (1u << 4), |
940 | | eFilePermissionsGroupExecute = (1u << 3), |
941 | | eFilePermissionsWorldRead = (1u << 2), |
942 | | eFilePermissionsWorldWrite = (1u << 1), |
943 | | eFilePermissionsWorldExecute = (1u << 0), |
944 | | |
945 | | eFilePermissionsUserRW = (eFilePermissionsUserRead | |
946 | | eFilePermissionsUserWrite | 0), |
947 | | eFileFilePermissionsUserRX = (eFilePermissionsUserRead | 0 | |
948 | | eFilePermissionsUserExecute), |
949 | | eFilePermissionsUserRWX = (eFilePermissionsUserRead | |
950 | | eFilePermissionsUserWrite | |
951 | | eFilePermissionsUserExecute), |
952 | | |
953 | | eFilePermissionsGroupRW = (eFilePermissionsGroupRead | |
954 | | eFilePermissionsGroupWrite | 0), |
955 | | eFilePermissionsGroupRX = (eFilePermissionsGroupRead | 0 | |
956 | | eFilePermissionsGroupExecute), |
957 | | eFilePermissionsGroupRWX = (eFilePermissionsGroupRead | |
958 | | eFilePermissionsGroupWrite | |
959 | | eFilePermissionsGroupExecute), |
960 | | |
961 | | eFilePermissionsWorldRW = (eFilePermissionsWorldRead | |
962 | | eFilePermissionsWorldWrite | 0), |
963 | | eFilePermissionsWorldRX = (eFilePermissionsWorldRead | 0 | |
964 | | eFilePermissionsWorldExecute), |
965 | | eFilePermissionsWorldRWX = (eFilePermissionsWorldRead | |
966 | | eFilePermissionsWorldWrite | |
967 | | eFilePermissionsWorldExecute), |
968 | | |
969 | | eFilePermissionsEveryoneR = (eFilePermissionsUserRead | |
970 | | eFilePermissionsGroupRead | |
971 | | eFilePermissionsWorldRead), |
972 | | eFilePermissionsEveryoneW = (eFilePermissionsUserWrite | |
973 | | eFilePermissionsGroupWrite | |
974 | | eFilePermissionsWorldWrite), |
975 | | eFilePermissionsEveryoneX = (eFilePermissionsUserExecute | |
976 | | eFilePermissionsGroupExecute | |
977 | | eFilePermissionsWorldExecute), |
978 | | |
979 | | eFilePermissionsEveryoneRW = (eFilePermissionsEveryoneR | |
980 | | eFilePermissionsEveryoneW | 0), |
981 | | eFilePermissionsEveryoneRX = (eFilePermissionsEveryoneR | 0 | |
982 | | eFilePermissionsEveryoneX), |
983 | | eFilePermissionsEveryoneRWX = (eFilePermissionsEveryoneR | |
984 | | eFilePermissionsEveryoneW | |
985 | | eFilePermissionsEveryoneX), |
986 | | eFilePermissionsFileDefault = eFilePermissionsUserRW, |
987 | | eFilePermissionsDirectoryDefault = eFilePermissionsUserRWX, |
988 | | }; |
989 | | |
990 | | /// Queue work item types. |
991 | | /// |
992 | | /// The different types of work that can be enqueued on a libdispatch aka Grand |
993 | | /// Central Dispatch (GCD) queue. |
994 | | enum QueueItemKind { |
995 | | eQueueItemKindUnknown = 0, |
996 | | eQueueItemKindFunction, |
997 | | eQueueItemKindBlock |
998 | | }; |
999 | | |
1000 | | /// Queue type. |
1001 | | /// |
1002 | | /// libdispatch aka Grand Central Dispatch (GCD) queues can be either |
1003 | | /// serial (executing on one thread) or concurrent (executing on |
1004 | | /// multiple threads). |
1005 | | enum QueueKind { |
1006 | | eQueueKindUnknown = 0, |
1007 | | eQueueKindSerial, |
1008 | | eQueueKindConcurrent |
1009 | | }; |
1010 | | |
1011 | | /// Expression Evaluation Stages. |
1012 | | /// |
1013 | | /// These are the cancellable stages of expression evaluation, passed |
1014 | | /// to the expression evaluation callback, so that you can interrupt |
1015 | | /// expression evaluation at the various points in its lifecycle. |
1016 | | enum ExpressionEvaluationPhase { |
1017 | | eExpressionEvaluationParse = 0, |
1018 | | eExpressionEvaluationIRGen, |
1019 | | eExpressionEvaluationExecution, |
1020 | | eExpressionEvaluationComplete |
1021 | | }; |
1022 | | |
1023 | | /// Architecture-agnostic categorization of instructions for traversing the |
1024 | | /// control flow of a trace. |
1025 | | /// |
1026 | | /// A single instruction can match one or more of these categories. |
1027 | | enum InstructionControlFlowKind { |
1028 | | /// The instruction could not be classified. |
1029 | | eInstructionControlFlowKindUnknown = 0, |
1030 | | /// The instruction is something not listed below, i.e. it's a sequential |
1031 | | /// instruction that doesn't affect the control flow of the program. |
1032 | | eInstructionControlFlowKindOther, |
1033 | | /// The instruction is a near (function) call. |
1034 | | eInstructionControlFlowKindCall, |
1035 | | /// The instruction is a near (function) return. |
1036 | | eInstructionControlFlowKindReturn, |
1037 | | /// The instruction is a near unconditional jump. |
1038 | | eInstructionControlFlowKindJump, |
1039 | | /// The instruction is a near conditional jump. |
1040 | | eInstructionControlFlowKindCondJump, |
1041 | | /// The instruction is a call-like far transfer. |
1042 | | /// E.g. SYSCALL, SYSENTER, or FAR CALL. |
1043 | | eInstructionControlFlowKindFarCall, |
1044 | | /// The instruction is a return-like far transfer. |
1045 | | /// E.g. SYSRET, SYSEXIT, IRET, or FAR RET. |
1046 | | eInstructionControlFlowKindFarReturn, |
1047 | | /// The instruction is a jump-like far transfer. |
1048 | | /// E.g. FAR JMP. |
1049 | | eInstructionControlFlowKindFarJump |
1050 | | }; |
1051 | | |
1052 | | /// Watchpoint Kind. |
1053 | | /// |
1054 | | /// Indicates what types of events cause the watchpoint to fire. Used by Native |
1055 | | /// *Protocol-related classes. |
1056 | | FLAGS_ENUM(WatchpointKind){eWatchpointKindWrite = (1u << 0), |
1057 | | eWatchpointKindRead = (1u << 1)}; |
1058 | | |
1059 | | enum GdbSignal { |
1060 | | eGdbSignalBadAccess = 0x91, |
1061 | | eGdbSignalBadInstruction = 0x92, |
1062 | | eGdbSignalArithmetic = 0x93, |
1063 | | eGdbSignalEmulation = 0x94, |
1064 | | eGdbSignalSoftware = 0x95, |
1065 | | eGdbSignalBreakpoint = 0x96 |
1066 | | }; |
1067 | | |
1068 | | /// Used with SBHostOS::GetLLDBPath (lldb::PathType) to find files that are |
1069 | | /// related to LLDB on the current host machine. Most files are |
1070 | | /// relative to LLDB or are in known locations. |
1071 | | enum PathType { |
1072 | | ePathTypeLLDBShlibDir, ///< The directory where the lldb.so (unix) or LLDB |
1073 | | ///< mach-o file in LLDB.framework (MacOSX) exists |
1074 | | ePathTypeSupportExecutableDir, ///< Find LLDB support executable directory |
1075 | | ///< (debugserver, etc) |
1076 | | ePathTypeHeaderDir, ///< Find LLDB header file directory |
1077 | | ePathTypePythonDir, ///< Find Python modules (PYTHONPATH) directory |
1078 | | ePathTypeLLDBSystemPlugins, ///< System plug-ins directory |
1079 | | ePathTypeLLDBUserPlugins, ///< User plug-ins directory |
1080 | | ePathTypeLLDBTempSystemDir, ///< The LLDB temp directory for this system that |
1081 | | ///< will be cleaned up on exit |
1082 | | ePathTypeGlobalLLDBTempSystemDir, ///< The LLDB temp directory for this |
1083 | | ///< system, NOT cleaned up on a process |
1084 | | ///< exit. |
1085 | | ePathTypeClangDir ///< Find path to Clang builtin headers |
1086 | | }; |
1087 | | |
1088 | | /// Kind of member function. |
1089 | | /// |
1090 | | /// Used by the type system. |
1091 | | enum MemberFunctionKind { |
1092 | | eMemberFunctionKindUnknown = 0, ///< Not sure what the type of this is |
1093 | | eMemberFunctionKindConstructor, ///< A function used to create instances |
1094 | | eMemberFunctionKindDestructor, ///< A function used to tear down existing |
1095 | | ///< instances |
1096 | | eMemberFunctionKindInstanceMethod, ///< A function that applies to a specific |
1097 | | ///< instance |
1098 | | eMemberFunctionKindStaticMethod ///< A function that applies to a type rather |
1099 | | ///< than any instance |
1100 | | }; |
1101 | | |
1102 | | /// String matching algorithm used by SBTarget. |
1103 | | enum MatchType { eMatchTypeNormal, eMatchTypeRegex, eMatchTypeStartsWith }; |
1104 | | |
1105 | | /// Bitmask that describes details about a type. |
1106 | | FLAGS_ENUM(TypeFlags){ |
1107 | | eTypeHasChildren = (1u << 0), eTypeHasValue = (1u << 1), |
1108 | | eTypeIsArray = (1u << 2), eTypeIsBlock = (1u << 3), |
1109 | | eTypeIsBuiltIn = (1u << 4), eTypeIsClass = (1u << 5), |
1110 | | eTypeIsCPlusPlus = (1u << 6), eTypeIsEnumeration = (1u << 7), |
1111 | | eTypeIsFuncPrototype = (1u << 8), eTypeIsMember = (1u << 9), |
1112 | | eTypeIsObjC = (1u << 10), eTypeIsPointer = (1u << 11), |
1113 | | eTypeIsReference = (1u << 12), eTypeIsStructUnion = (1u << 13), |
1114 | | eTypeIsTemplate = (1u << 14), eTypeIsTypedef = (1u << 15), |
1115 | | eTypeIsVector = (1u << 16), eTypeIsScalar = (1u << 17), |
1116 | | eTypeIsInteger = (1u << 18), eTypeIsFloat = (1u << 19), |
1117 | | eTypeIsComplex = (1u << 20), eTypeIsSigned = (1u << 21), |
1118 | | eTypeInstanceIsPointer = (1u << 22)}; |
1119 | | |
1120 | | FLAGS_ENUM(CommandFlags){ |
1121 | | /// eCommandRequiresTarget |
1122 | | /// |
1123 | | /// Ensures a valid target is contained in m_exe_ctx prior to executing the |
1124 | | /// command. If a target doesn't exist or is invalid, the command will fail |
1125 | | /// and CommandObject::GetInvalidTargetDescription() will be returned as the |
1126 | | /// error. CommandObject subclasses can override the virtual function for |
1127 | | /// GetInvalidTargetDescription() to provide custom strings when needed. |
1128 | | eCommandRequiresTarget = (1u << 0), |
1129 | | /// eCommandRequiresProcess |
1130 | | /// |
1131 | | /// Ensures a valid process is contained in m_exe_ctx prior to executing the |
1132 | | /// command. If a process doesn't exist or is invalid, the command will fail |
1133 | | /// and CommandObject::GetInvalidProcessDescription() will be returned as |
1134 | | /// the error. CommandObject subclasses can override the virtual function |
1135 | | /// for GetInvalidProcessDescription() to provide custom strings when |
1136 | | /// needed. |
1137 | | eCommandRequiresProcess = (1u << 1), |
1138 | | /// eCommandRequiresThread |
1139 | | /// |
1140 | | /// Ensures a valid thread is contained in m_exe_ctx prior to executing the |
1141 | | /// command. If a thread doesn't exist or is invalid, the command will fail |
1142 | | /// and CommandObject::GetInvalidThreadDescription() will be returned as the |
1143 | | /// error. CommandObject subclasses can override the virtual function for |
1144 | | /// GetInvalidThreadDescription() to provide custom strings when needed. |
1145 | | eCommandRequiresThread = (1u << 2), |
1146 | | /// eCommandRequiresFrame |
1147 | | /// |
1148 | | /// Ensures a valid frame is contained in m_exe_ctx prior to executing the |
1149 | | /// command. If a frame doesn't exist or is invalid, the command will fail |
1150 | | /// and CommandObject::GetInvalidFrameDescription() will be returned as the |
1151 | | /// error. CommandObject subclasses can override the virtual function for |
1152 | | /// GetInvalidFrameDescription() to provide custom strings when needed. |
1153 | | eCommandRequiresFrame = (1u << 3), |
1154 | | /// eCommandRequiresRegContext |
1155 | | /// |
1156 | | /// Ensures a valid register context (from the selected frame if there is a |
1157 | | /// frame in m_exe_ctx, or from the selected thread from m_exe_ctx) is |
1158 | | /// available from m_exe_ctx prior to executing the command. If a target |
1159 | | /// doesn't exist or is invalid, the command will fail and |
1160 | | /// CommandObject::GetInvalidRegContextDescription() will be returned as the |
1161 | | /// error. CommandObject subclasses can override the virtual function for |
1162 | | /// GetInvalidRegContextDescription() to provide custom strings when needed. |
1163 | | eCommandRequiresRegContext = (1u << 4), |
1164 | | /// eCommandTryTargetAPILock |
1165 | | /// |
1166 | | /// Attempts to acquire the target lock if a target is selected in the |
1167 | | /// command interpreter. If the command object fails to acquire the API |
1168 | | /// lock, the command will fail with an appropriate error message. |
1169 | | eCommandTryTargetAPILock = (1u << 5), |
1170 | | /// eCommandProcessMustBeLaunched |
1171 | | /// |
1172 | | /// Verifies that there is a launched process in m_exe_ctx, if there isn't, |
1173 | | /// the command will fail with an appropriate error message. |
1174 | | eCommandProcessMustBeLaunched = (1u << 6), |
1175 | | /// eCommandProcessMustBePaused |
1176 | | /// |
1177 | | /// Verifies that there is a paused process in m_exe_ctx, if there isn't, |
1178 | | /// the command will fail with an appropriate error message. |
1179 | | eCommandProcessMustBePaused = (1u << 7), |
1180 | | /// eCommandProcessMustBeTraced |
1181 | | /// |
1182 | | /// Verifies that the process is being traced by a Trace plug-in, if it |
1183 | | /// isn't the command will fail with an appropriate error message. |
1184 | | eCommandProcessMustBeTraced = (1u << 8)}; |
1185 | | |
1186 | | /// Whether a summary should cap how much data it returns to users or not. |
1187 | | enum TypeSummaryCapping { |
1188 | | eTypeSummaryCapped = true, |
1189 | | eTypeSummaryUncapped = false |
1190 | | }; |
1191 | | |
1192 | | /// The result from a command interpreter run. |
1193 | | enum CommandInterpreterResult { |
1194 | | /// Command interpreter finished successfully. |
1195 | | eCommandInterpreterResultSuccess, |
1196 | | /// Stopped because the corresponding option was set and the inferior |
1197 | | /// crashed. |
1198 | | eCommandInterpreterResultInferiorCrash, |
1199 | | /// Stopped because the corresponding option was set and a command returned |
1200 | | /// an error. |
1201 | | eCommandInterpreterResultCommandError, |
1202 | | /// Stopped because quit was requested. |
1203 | | eCommandInterpreterResultQuitRequested, |
1204 | | }; |
1205 | | |
1206 | | // Style of core file to create when calling SaveCore. |
1207 | | enum SaveCoreStyle { |
1208 | | eSaveCoreUnspecified = 0, |
1209 | | eSaveCoreFull = 1, |
1210 | | eSaveCoreDirtyOnly = 2, |
1211 | | eSaveCoreStackOnly = 3, |
1212 | | }; |
1213 | | |
1214 | | /// Events that might happen during a trace session. |
1215 | | enum TraceEvent { |
1216 | | /// Tracing was disabled for some time due to a software trigger. |
1217 | | eTraceEventDisabledSW, |
1218 | | /// Tracing was disable for some time due to a hardware trigger. |
1219 | | eTraceEventDisabledHW, |
1220 | | /// Event due to CPU change for a thread. This event is also fired when |
1221 | | /// suddenly it's not possible to identify the cpu of a given thread. |
1222 | | eTraceEventCPUChanged, |
1223 | | /// Event due to a CPU HW clock tick. |
1224 | | eTraceEventHWClockTick, |
1225 | | /// The underlying tracing technology emitted a synchronization event used by |
1226 | | /// trace processors. |
1227 | | eTraceEventSyncPoint, |
1228 | | }; |
1229 | | |
1230 | | // Enum used to identify which kind of item a \a TraceCursor is pointing at |
1231 | | enum TraceItemKind { |
1232 | | eTraceItemKindError = 0, |
1233 | | eTraceItemKindEvent, |
1234 | | eTraceItemKindInstruction, |
1235 | | }; |
1236 | | |
1237 | | /// Enum to indicate the reference point when invoking |
1238 | | /// \a TraceCursor::Seek(). |
1239 | | /// The following values are inspired by \a std::istream::seekg. |
1240 | | enum TraceCursorSeekType { |
1241 | | /// The beginning of the trace, i.e the oldest item. |
1242 | | eTraceCursorSeekTypeBeginning = 0, |
1243 | | /// The current position in the trace. |
1244 | | eTraceCursorSeekTypeCurrent, |
1245 | | /// The end of the trace, i.e the most recent item. |
1246 | | eTraceCursorSeekTypeEnd |
1247 | | }; |
1248 | | |
1249 | | /// Enum to control the verbosity level of `dwim-print` execution. |
1250 | | enum DWIMPrintVerbosity { |
1251 | | /// Run `dwim-print` with no verbosity. |
1252 | | eDWIMPrintVerbosityNone, |
1253 | | /// Print a message when `dwim-print` uses `expression` evaluation. |
1254 | | eDWIMPrintVerbosityExpression, |
1255 | | /// Always print a message indicating how `dwim-print` is evaluating its |
1256 | | /// expression. |
1257 | | eDWIMPrintVerbosityFull, |
1258 | | }; |
1259 | | |
1260 | | enum WatchpointValueKind { |
1261 | | eWatchPointValueKindInvalid = 0, |
1262 | | ///< Watchpoint was created watching a variable |
1263 | | eWatchPointValueKindVariable = 1, |
1264 | | ///< Watchpoint was created watching the result of an expression that was |
1265 | | ///< evaluated at creation time. |
1266 | | eWatchPointValueKindExpression = 2, |
1267 | | }; |
1268 | | |
1269 | | enum CompletionType { |
1270 | | eNoCompletion = 0u, |
1271 | | eSourceFileCompletion = (1u << 0), |
1272 | | eDiskFileCompletion = (1u << 1), |
1273 | | eDiskDirectoryCompletion = (1u << 2), |
1274 | | eSymbolCompletion = (1u << 3), |
1275 | | eModuleCompletion = (1u << 4), |
1276 | | eSettingsNameCompletion = (1u << 5), |
1277 | | ePlatformPluginCompletion = (1u << 6), |
1278 | | eArchitectureCompletion = (1u << 7), |
1279 | | eVariablePathCompletion = (1u << 8), |
1280 | | eRegisterCompletion = (1u << 9), |
1281 | | eBreakpointCompletion = (1u << 10), |
1282 | | eProcessPluginCompletion = (1u << 11), |
1283 | | eDisassemblyFlavorCompletion = (1u << 12), |
1284 | | eTypeLanguageCompletion = (1u << 13), |
1285 | | eFrameIndexCompletion = (1u << 14), |
1286 | | eModuleUUIDCompletion = (1u << 15), |
1287 | | eStopHookIDCompletion = (1u << 16), |
1288 | | eThreadIndexCompletion = (1u << 17), |
1289 | | eWatchpointIDCompletion = (1u << 18), |
1290 | | eBreakpointNameCompletion = (1u << 19), |
1291 | | eProcessIDCompletion = (1u << 20), |
1292 | | eProcessNameCompletion = (1u << 21), |
1293 | | eRemoteDiskFileCompletion = (1u << 22), |
1294 | | eRemoteDiskDirectoryCompletion = (1u << 23), |
1295 | | eTypeCategoryNameCompletion = (1u << 24), |
1296 | | // This item serves two purposes. It is the last element in the enum, so |
1297 | | // you can add custom enums starting from here in your Option class. Also |
1298 | | // if you & in this bit the base code will not process the option. |
1299 | | eCustomCompletion = (1u << 25) |
1300 | | }; |
1301 | | |
1302 | | } // namespace lldb |
1303 | | |
1304 | | #endif // LLDB_LLDB_ENUMERATIONS_H |