Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:42:50

0001 //===-- CommandOptionArgumentTable.h ----------------------------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 
0009 #ifndef LLDB_INTERPRETER_COMMANDOPTIONARGUMENTTABLE_H
0010 #define LLDB_INTERPRETER_COMMANDOPTIONARGUMENTTABLE_H
0011 
0012 #include "lldb/Interpreter/CommandObject.h"
0013 
0014 namespace lldb_private {
0015 
0016 static constexpr OptionEnumValueElement g_corefile_save_style[] = {
0017     {lldb::eSaveCoreFull, "full", "Create a core file with all memory saved"},
0018     {lldb::eSaveCoreDirtyOnly, "modified-memory",
0019      "Create a corefile with only modified memory saved"},
0020     {lldb::eSaveCoreStackOnly, "stack",
0021      "Create a corefile with only stack  memory saved"},
0022 };
0023 
0024 static constexpr OptionEnumValueElement g_description_verbosity_type[] = {
0025     {
0026         eLanguageRuntimeDescriptionDisplayVerbosityCompact,
0027         "compact",
0028         "Only show the description string",
0029     },
0030     {
0031         eLanguageRuntimeDescriptionDisplayVerbosityFull,
0032         "full",
0033         "Show the full output, including persistent variable's name and type",
0034     },
0035 };
0036 
0037 static constexpr OptionEnumValueElement g_sort_option_enumeration[] = {
0038     {
0039         eSortOrderNone,
0040         "none",
0041         "No sorting, use the original symbol table order.",
0042     },
0043     {
0044         eSortOrderByAddress,
0045         "address",
0046         "Sort output by symbol address.",
0047     },
0048     {
0049         eSortOrderByName,
0050         "name",
0051         "Sort output by symbol name.",
0052     },
0053     {
0054         eSortOrderBySize,
0055         "size",
0056         "Sort output by symbol byte size.",
0057     },
0058 };
0059 
0060 // Note that the negation in the argument name causes a slightly confusing
0061 // mapping of the enum values.
0062 static constexpr OptionEnumValueElement g_dependents_enumeration[] = {
0063     {
0064         eLoadDependentsDefault,
0065         "default",
0066         "Only load dependents when the target is an executable.",
0067     },
0068     {
0069         eLoadDependentsNo,
0070         "true",
0071         "Don't load dependents, even if the target is an executable.",
0072     },
0073     {
0074         eLoadDependentsYes,
0075         "false",
0076         "Load dependents, even if the target is not an executable.",
0077     },
0078 };
0079 
0080 // FIXME: "script-type" needs to have its contents determined dynamically, so
0081 // somebody can add a new scripting language to lldb and have it pickable here
0082 // without having to change this enumeration by hand and rebuild lldb proper.
0083 static constexpr OptionEnumValueElement g_script_option_enumeration[] = {
0084     {
0085         lldb::eScriptLanguageNone,
0086         "command",
0087         "Commands are in the lldb command interpreter language",
0088     },
0089     {
0090         lldb::eScriptLanguagePython,
0091         "python",
0092         "Commands are in the Python language.",
0093     },
0094     {
0095         lldb::eScriptLanguageLua,
0096         "lua",
0097         "Commands are in the Lua language.",
0098     },
0099     {
0100         lldb::eScriptLanguageNone,
0101         "default",
0102         "Commands are in the default scripting language.",
0103     },
0104 };
0105 
0106 static constexpr OptionEnumValueElement g_log_handler_type[] = {
0107     {
0108         eLogHandlerDefault,
0109         "default",
0110         "Use the default (stream) log handler",
0111     },
0112     {
0113         eLogHandlerStream,
0114         "stream",
0115         "Write log messages to the debugger output stream or to a file if one "
0116         "is specified. A buffer size (in bytes) can be specified with -b. If "
0117         "no buffer size is specified the output is unbuffered.",
0118     },
0119     {
0120         eLogHandlerCircular,
0121         "circular",
0122         "Write log messages to a fixed size circular buffer. A buffer size "
0123         "(number of messages) must be specified with -b.",
0124     },
0125     {
0126         eLogHandlerSystem,
0127         "os",
0128         "Write log messages to the operating system log.",
0129     },
0130 };
0131 
0132 static constexpr OptionEnumValueElement g_script_synchro_type[] = {
0133     {
0134         eScriptedCommandSynchronicitySynchronous,
0135         "synchronous",
0136         "Run synchronous",
0137     },
0138     {
0139         eScriptedCommandSynchronicityAsynchronous,
0140         "asynchronous",
0141         "Run asynchronous",
0142     },
0143     {
0144         eScriptedCommandSynchronicityCurrentValue,
0145         "current",
0146         "Do not alter current setting",
0147     },
0148 };
0149 
0150 static constexpr OptionEnumValueElement g_running_mode[] = {
0151     {lldb::eOnlyThisThread, "this-thread", "Run only this thread"},
0152     {lldb::eAllThreads, "all-threads", "Run all threads"},
0153     {lldb::eOnlyDuringStepping, "while-stepping",
0154      "Run only this thread while stepping"},
0155 };
0156 
0157 static constexpr OptionEnumValueElement g_completion_type[] = {
0158     {lldb::eNoCompletion, "none", "No completion."},
0159     {lldb::eSourceFileCompletion, "source-file", "Completes to a source file."},
0160     {lldb::eDiskFileCompletion, "disk-file", "Completes to a disk file."},
0161     {lldb::eDiskDirectoryCompletion, "disk-directory",
0162      "Completes to a disk directory."},
0163     {lldb::eSymbolCompletion, "symbol", "Completes to a symbol."},
0164     {lldb::eModuleCompletion, "module", "Completes to a module."},
0165     {lldb::eSettingsNameCompletion, "settings-name",
0166      "Completes to a settings name."},
0167     {lldb::ePlatformPluginCompletion, "platform-plugin",
0168      "Completes to a platform plugin."},
0169     {lldb::eArchitectureCompletion, "architecture",
0170      "Completes to a architecture."},
0171     {lldb::eVariablePathCompletion, "variable-path",
0172      "Completes to a variable path."},
0173     {lldb::eRegisterCompletion, "register", "Completes to a register."},
0174     {lldb::eBreakpointCompletion, "breakpoint", "Completes to a breakpoint."},
0175     {lldb::eProcessPluginCompletion, "process-plugin",
0176      "Completes to a process plugin."},
0177     {lldb::eDisassemblyFlavorCompletion, "disassembly-flavor",
0178      "Completes to a disassembly flavor."},
0179     {lldb::eTypeLanguageCompletion, "type-language",
0180      "Completes to a type language."},
0181     {lldb::eFrameIndexCompletion, "frame-index", "Completes to a frame index."},
0182     {lldb::eModuleUUIDCompletion, "module-uuid", "Completes to a module uuid."},
0183     {lldb::eStopHookIDCompletion, "stophook-id", "Completes to a stophook id."},
0184     {lldb::eThreadIndexCompletion, "thread-index",
0185      "Completes to a thread index."},
0186     {lldb::eWatchpointIDCompletion, "watchpoint-id",
0187      "Completes to a watchpoint id."},
0188     {lldb::eBreakpointNameCompletion, "breakpoint-name",
0189      "Completes to a breakpoint name."},
0190     {lldb::eProcessIDCompletion, "process-id", "Completes to a process id."},
0191     {lldb::eProcessNameCompletion, "process-name",
0192      "Completes to a process name."},
0193     {lldb::eRemoteDiskFileCompletion, "remote-disk-file",
0194      "Completes to a remote disk file."},
0195     {lldb::eRemoteDiskDirectoryCompletion, "remote-disk-directory",
0196      "Completes to a remote disk directory."},
0197     {lldb::eTypeCategoryNameCompletion, "type-category-name",
0198      "Completes to a type category name."},
0199     {lldb::eCustomCompletion, "custom", "Custom completion."},
0200     {lldb::eThreadIDCompletion, "thread-id", "Completes to a thread ID."},
0201 };
0202 
0203 llvm::StringRef RegisterNameHelpTextCallback();
0204 llvm::StringRef BreakpointIDHelpTextCallback();
0205 llvm::StringRef BreakpointIDRangeHelpTextCallback();
0206 llvm::StringRef BreakpointNameHelpTextCallback();
0207 llvm::StringRef GDBFormatHelpTextCallback();
0208 llvm::StringRef FormatHelpTextCallback();
0209 llvm::StringRef LanguageTypeHelpTextCallback();
0210 llvm::StringRef SummaryStringHelpTextCallback();
0211 llvm::StringRef ExprPathHelpTextCallback();
0212 llvm::StringRef arch_helper();
0213 
0214 static constexpr CommandObject::ArgumentTableEntry g_argument_table[] = {
0215     // clang-format off
0216     { lldb::eArgTypeAddress, "address", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "A valid address in the target program's execution space." },
0217     { lldb::eArgTypeAddressOrExpression, "address-expression", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "An expression that resolves to an address." },
0218     { lldb::eArgTypeAliasName, "alias-name", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "The name of an abbreviation (alias) for a debugger command." },
0219     { lldb::eArgTypeAliasOptions, "options-for-aliased-command", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "Command options to be used as part of an alias (abbreviation) definition.  (See 'help commands alias' for more information.)" },
0220     { lldb::eArgTypeArchitecture, "arch", lldb::eArchitectureCompletion, {}, { arch_helper, true }, "The architecture name, e.g. i386 or x86_64." },
0221     { lldb::eArgTypeBoolean, "boolean", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "A Boolean value: 'true' or 'false'" },
0222     { lldb::eArgTypeBreakpointID, "breakpt-id", lldb::CompletionType::eNoCompletion, {}, { BreakpointIDHelpTextCallback, false }, nullptr },
0223     { lldb::eArgTypeBreakpointIDRange, "breakpt-id-list", lldb::CompletionType::eNoCompletion, {}, { BreakpointIDRangeHelpTextCallback, false }, nullptr },
0224     { lldb::eArgTypeBreakpointName, "breakpoint-name", lldb::eBreakpointNameCompletion, {}, { BreakpointNameHelpTextCallback, false }, nullptr },
0225     { lldb::eArgTypeByteSize, "byte-size", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "Number of bytes to use." },
0226     { lldb::eArgTypeClassName, "class-name", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "Then name of a class from the debug information in the program." },
0227     { lldb::eArgTypeCommandName, "cmd-name", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "A debugger command (may be multiple words), without any options or arguments." },
0228     { lldb::eArgTypeCount, "count", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "An unsigned integer." },
0229     { lldb::eArgTypeDescriptionVerbosity, "description-verbosity", lldb::CompletionType::eNoCompletion, g_description_verbosity_type, { nullptr, false }, "How verbose the output of 'po' should be." },
0230     { lldb::eArgTypeDirectoryName, "directory", lldb::eDiskDirectoryCompletion, {}, { nullptr, false }, "A directory name." },
0231     { lldb::eArgTypeDisassemblyFlavor, "disassembly-flavor", lldb::eDisassemblyFlavorCompletion, {}, { nullptr, false }, "A disassembly flavor recognized by your disassembly plugin.  Currently the only valid options are \"att\" and \"intel\" for Intel targets" },
0232     { lldb::eArgTypeEndAddress, "end-address", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "Help text goes here." },
0233     { lldb::eArgTypeExpression, "expr", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "Help text goes here." },
0234     { lldb::eArgTypeExpressionPath, "expr-path", lldb::CompletionType::eNoCompletion, {}, { ExprPathHelpTextCallback, true }, nullptr },
0235     { lldb::eArgTypeExprFormat, "expression-format", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "[ [bool|b] | [bin] | [char|c] | [oct|o] | [dec|i|d|u] | [hex|x] | [float|f] | [cstr|s] ]" },
0236     { lldb::eArgTypeFileLineColumn, "linespec", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "A source specifier in the form file:line[:column]" },
0237     { lldb::eArgTypeFilename, "filename", lldb::eDiskFileCompletion, {}, { nullptr, false }, "The name of a file (can include path)." },
0238     { lldb::eArgTypeFormat, "format", lldb::CompletionType::eNoCompletion, {}, { FormatHelpTextCallback, true }, nullptr },
0239     { lldb::eArgTypeFrameIndex, "frame-index", lldb::eFrameIndexCompletion, {}, { nullptr, false }, "Index into a thread's list of frames." },
0240     { lldb::eArgTypeFullName, "fullname", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "Help text goes here." },
0241     { lldb::eArgTypeFunctionName, "function-name", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "The name of a function." },
0242     { lldb::eArgTypeFunctionOrSymbol, "function-or-symbol", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "The name of a function or symbol." },
0243     { lldb::eArgTypeGDBFormat, "gdb-format", lldb::CompletionType::eNoCompletion, {}, { GDBFormatHelpTextCallback, true }, nullptr },
0244     { lldb::eArgTypeHelpText, "help-text", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "Text to be used as help for some other entity in LLDB" },
0245     { lldb::eArgTypeIndex, "index", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "An index into a list." },
0246     { lldb::eArgTypeLanguage, "source-language", lldb::eTypeLanguageCompletion, {}, { LanguageTypeHelpTextCallback, true }, nullptr },
0247     { lldb::eArgTypeLineNum, "linenum", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "Line number in a source file." },
0248     { lldb::eArgTypeLogCategory, "log-category", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "The name of a category within a log channel, e.g. all (try \"log list\" to see a list of all channels and their categories." },
0249     { lldb::eArgTypeLogChannel, "log-channel", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "The name of a log channel, e.g. process.gdb-remote (try \"log list\" to see a list of all channels and their categories)." },
0250     { lldb::eArgTypeMethod, "method", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "A C++ method name." },
0251     { lldb::eArgTypeName, "name", lldb::eTypeCategoryNameCompletion, {}, { nullptr, false }, "The name of a type category." },
0252     { lldb::eArgTypeNewPathPrefix, "new-path-prefix", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "Help text goes here." },
0253     { lldb::eArgTypeNumLines, "num-lines", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "The number of lines to use." },
0254     { lldb::eArgTypeNumberPerLine, "number-per-line", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "The number of items per line to display." },
0255     { lldb::eArgTypeOffset, "offset", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "Help text goes here." },
0256     { lldb::eArgTypeOldPathPrefix, "old-path-prefix", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "Help text goes here." },
0257     { lldb::eArgTypeOneLiner, "one-line-command", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "A command that is entered as a single line of text." },
0258     { lldb::eArgTypePath, "path", lldb::eDiskFileCompletion, {}, { nullptr, false }, "Path." },
0259     { lldb::eArgTypePermissionsNumber, "perms-numeric", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "Permissions given as an octal number (e.g. 755)." },
0260     { lldb::eArgTypePermissionsString, "perms=string", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "Permissions given as a string value (e.g. rw-r-xr--)." },
0261     { lldb::eArgTypePid, "pid", lldb::eProcessIDCompletion, {}, { nullptr, false }, "The process ID number." },
0262     { lldb::eArgTypePlugin, "plugin", lldb::eProcessPluginCompletion, {}, { nullptr, false }, "Help text goes here." },
0263     { lldb::eArgTypeProcessName, "process-name", lldb::eProcessNameCompletion, {}, { nullptr, false }, "The name of the process." },
0264     { lldb::eArgTypePythonClass, "python-class", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "The name of a Python class." },
0265     { lldb::eArgTypePythonFunction, "python-function", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "The name of a Python function." },
0266     { lldb::eArgTypePythonScript, "python-script", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "Source code written in Python." },
0267     { lldb::eArgTypeQueueName, "queue-name", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "The name of the thread queue." },
0268     { lldb::eArgTypeRegisterName, "register-name", lldb::CompletionType::eRegisterCompletion, {}, { RegisterNameHelpTextCallback, true }, nullptr },
0269     { lldb::eArgTypeRegularExpression, "regular-expression", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "A POSIX-compliant extended regular expression." },
0270     { lldb::eArgTypeRunArgs, "run-args", lldb::CompletionType::eDiskFileCompletion, {}, { nullptr, false }, "Arguments to be passed to the target program when it starts executing." },
0271     { lldb::eArgTypeRunMode, "run-mode", lldb::CompletionType::eNoCompletion, g_running_mode, { nullptr, false }, "Help text goes here." },
0272     { lldb::eArgTypeScriptedCommandSynchronicity, "script-cmd-synchronicity", lldb::CompletionType::eNoCompletion, g_script_synchro_type, { nullptr, false }, "The synchronicity to use to run scripted commands with regard to LLDB event system." },
0273     { lldb::eArgTypeScriptLang, "script-language", lldb::CompletionType::eNoCompletion, g_script_option_enumeration, { nullptr, false }, "The scripting language to be used for script-based commands.  Supported languages are python and lua." },
0274     { lldb::eArgTypeSearchWord, "search-word", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "Any word of interest for search purposes." },
0275     { lldb::eArgTypeSelector, "selector", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "An Objective-C selector name." },
0276     { lldb::eArgTypeSettingIndex, "setting-index", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "An index into a settings variable that is an array (try 'settings list' to see all the possible settings variables and their types)." },
0277     { lldb::eArgTypeSettingKey, "setting-key", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "A key into a settings variables that is a dictionary (try 'settings list' to see all the possible settings variables and their types)." },
0278     { lldb::eArgTypeSettingPrefix, "setting-prefix", lldb::CompletionType::eSettingsNameCompletion, {}, { nullptr, false }, "The name of a settable internal debugger variable up to a dot ('.'), e.g. 'target.process.'" },
0279     { lldb::eArgTypeSettingVariableName, "setting-variable-name", lldb::CompletionType::eSettingsNameCompletion, {}, { nullptr, false }, "The name of a settable internal debugger variable.  Type 'settings list' to see a complete list of such variables." },
0280     { lldb::eArgTypeShlibName, "shlib-name", lldb::CompletionType::eDiskFileCompletion, {}, { nullptr, false }, "The name of a shared library." },
0281     { lldb::eArgTypeSourceFile, "source-file", lldb::eSourceFileCompletion, {}, { nullptr, false }, "The name of a source file.." },
0282     { lldb::eArgTypeSortOrder, "sort-order", lldb::CompletionType::eNoCompletion, g_sort_option_enumeration, { nullptr, false }, "Specify a sort order when dumping lists." },
0283     { lldb::eArgTypeStartAddress, "start-address", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "Help text goes here." },
0284     { lldb::eArgTypeSummaryString, "summary-string", lldb::CompletionType::eNoCompletion, {}, { SummaryStringHelpTextCallback, true }, nullptr },
0285     { lldb::eArgTypeSymbol, "symbol", lldb::eSymbolCompletion, {}, { nullptr, false }, "Any symbol name (function name, variable, argument, etc.)" },
0286     { lldb::eArgTypeThreadID, "thread-id", lldb::CompletionType::eThreadIndexCompletion, {}, { nullptr, false }, "Thread ID number." },
0287     { lldb::eArgTypeThreadIndex, "thread-index", lldb::CompletionType::eThreadIndexCompletion, {}, { nullptr, false }, "Index into the process' list of threads." },
0288     { lldb::eArgTypeThreadName, "thread-name", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "The thread's name." },
0289     { lldb::eArgTypeTypeName, "type-name", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "A type name." },
0290     { lldb::eArgTypeUnsignedInteger, "unsigned-integer", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "An unsigned integer." },
0291     { lldb::eArgTypeUnixSignal, "unix-signal", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "A valid Unix signal name or number (e.g. SIGKILL, KILL or 9)." },
0292     { lldb::eArgTypeVarName, "variable-name", lldb::CompletionType::eVariablePathCompletion, {} ,{ nullptr, false }, "The name of a variable in your program." },
0293     { lldb::eArgTypeValue, "value", lldb::CompletionType::eNoCompletion, g_dependents_enumeration, { nullptr, false }, "A value could be anything, depending on where and how it is used." },
0294     { lldb::eArgTypeWidth, "width", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "Help text goes here." },
0295     { lldb::eArgTypeNone, "none", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "No help available for this." },
0296     { lldb::eArgTypePlatform, "platform-name", lldb::ePlatformPluginCompletion, {}, { nullptr, false }, "The name of an installed platform plug-in . Type 'platform list' to see a complete list of installed platforms." },
0297     { lldb::eArgTypeWatchpointID, "watchpt-id", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "Watchpoint IDs are positive integers." },
0298     { lldb::eArgTypeWatchpointIDRange, "watchpt-id-list", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "For example, '1-3' or '1 to 3'." },
0299     { lldb::eArgTypeWatchType, "watch-type", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "Specify the type for a watchpoint." },
0300     { lldb::eArgRawInput, "raw-input", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "Free-form text passed to a command without prior interpretation, allowing spaces without requiring quotes.  To pass arguments and free form text put two dashes ' -- ' between the last argument and any raw input." },
0301     { lldb::eArgTypeCommand, "command", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "An LLDB Command line command element." },
0302     { lldb::eArgTypeColumnNum, "column", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "Column number in a source file." },
0303     { lldb::eArgTypeModuleUUID, "module-uuid", lldb::eModuleUUIDCompletion, {}, { nullptr, false }, "A module UUID value." },
0304     { lldb::eArgTypeSaveCoreStyle, "corefile-style", lldb::CompletionType::eNoCompletion, g_corefile_save_style, { nullptr, false }, "The type of corefile that lldb will try to create, dependant on this target's capabilities." },
0305     { lldb::eArgTypeLogHandler, "log-handler", lldb::CompletionType::eNoCompletion, g_log_handler_type ,{ nullptr, false }, "The log handle that will be used to write out log messages." },
0306     { lldb::eArgTypeSEDStylePair, "substitution-pair", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "A sed-style pattern and target pair." },
0307     { lldb::eArgTypeRecognizerID, "frame-recognizer-id", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "The ID for a stack frame recognizer." },
0308     { lldb::eArgTypeConnectURL, "process-connect-url", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "A URL-style specification for a remote connection." },
0309     { lldb::eArgTypeTargetID, "target-id", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "The index ID for an lldb Target." },
0310     { lldb::eArgTypeStopHookID, "stop-hook-id", lldb::CompletionType::eStopHookIDCompletion, {}, { nullptr, false }, "The ID you receive when you create a stop-hook." },
0311     { lldb::eArgTypeCompletionType, "completion-type", lldb::CompletionType::eNoCompletion, g_completion_type, { nullptr, false }, "The completion type to use when adding custom commands. If none is specified, the command won't use auto-completion." },
0312     { lldb::eArgTypeRemotePath, "remote-path", lldb::CompletionType::eRemoteDiskFileCompletion, {}, { nullptr, false }, "A path on the system managed by the current platform." },
0313     { lldb::eArgTypeRemoteFilename, "remote-filename", lldb::CompletionType::eRemoteDiskFileCompletion, {}, { nullptr, false }, "A file on the system managed by the current platform." },
0314     { lldb::eArgTypeModule, "module", lldb::CompletionType::eModuleCompletion, {}, { nullptr, false }, "The name of a module loaded into the current target." },
0315     { lldb::eArgTypeCPUName, "cpu-name", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "The name of a CPU." },
0316     { lldb::eArgTypeCPUFeatures, "cpu-features", lldb::CompletionType::eNoCompletion, {}, { nullptr, false }, "The CPU feature string." },
0317     // clang-format on
0318 };
0319 
0320 static_assert((sizeof(g_argument_table) /
0321                sizeof(CommandObject::ArgumentTableEntry)) ==
0322                   lldb::eArgTypeLastArg,
0323               "number of elements in g_argument_table doesn't match "
0324               "CommandArgumentType enumeration");
0325 
0326 } // namespace lldb_private
0327 
0328 #endif // LLDB_INTERPRETER_COMMANDOPTIONARGUMENTTABLE_H