1include "OptionsBase.td"
2
3let Command = "target modules dump symtab" in {
4  def tm_sort : Option<"sort", "s">, Group<1>,
5    Desc<"Supply a sort order when dumping the symbol table.">,
6    EnumArg<"SortOrder", "OptionEnumValues(g_sort_option_enumeration)">;
7}
8
9let Command = "help" in {
10  def help_hide_aliases : Option<"hide-aliases", "a">,
11    Desc<"Hide aliases in the command list.">;
12  def help_hide_user : Option<"hide-user-commands", "u">,
13    Desc<"Hide user-defined commands from the list.">;
14  def help_show_hidden : Option<"show-hidden-commands", "h">,
15    Desc<"Include commands prefixed with an underscore.">;
16}
17
18let Command = "settings set" in {
19  def setset_global : Option<"global", "g">, Arg<"Filename">,
20    Completion<"DiskFile">,
21    Desc<"Apply the new value to the global default value.">;
22  def setset_force : Option<"force", "f">,
23    Desc<"Force an empty value to be accepted as the default.">;
24}
25
26let Command = "settings write" in {
27  def setwrite_file : Option<"file", "f">, Required, Arg<"Filename">,
28    Completion<"DiskFile">,
29    Desc<"The file into which to write the settings.">;
30  def setwrite_append : Option<"append", "a">,
31    Desc<"Append to saved settings file if it exists.">;
32}
33
34let Command = "settings read" in {
35  def setread_file : Option<"file", "f">, Required, Arg<"Filename">,
36    Completion<"DiskFile">,
37    Desc<"The file from which to read the settings.">;
38}
39
40let Command = "breakpoint list" in {
41  def blist_internal : Option<"internal", "i">,
42    Desc<"Show debugger internal breakpoints">;
43  def blist_brief : Option<"brief", "b">, Group<1>,
44    Desc<"Give a brief description of the breakpoint (no location info).">;
45  def blist_full : Option<"full", "f">, Group<2>,
46    Desc<"Give a full description of the breakpoint and its locations.">;
47  def blist_verbose : Option<"verbose", "v">, Group<3>,
48    Desc<"Explain everything we know about the breakpoint (for debugging "
49    "debugger bugs).">;
50  def blist_dummy_bp : Option<"dummy-breakpoints", "D">,
51    Desc<"List Dummy breakpoints - i.e. breakpoints set before a file is "
52    "provided, which prime new targets.">;
53}
54
55let Command = "thread backtrace" in {
56  def thread_backtrace_count : Option<"count", "c">, Group<1>, Arg<"Count">,
57  Desc<"How many frames to display (-1 for all)">;
58  def thread_backtrace_start : Option<"start", "s">, Group<1>,
59  Arg<"FrameIndex">, Desc<"Frame in which to start the backtrace">;
60  def thread_backtrace_extended : Option<"extended", "e">, Group<1>,
61  Arg<"Boolean">, Desc<"Show the extended backtrace, if available">;
62}
63
64let Command = "thread step scope" in {
65  def thread_step_scope_step_in_avoids_no_debug :
66    Option<"step-in-avoids-no-debug", "a">, Group<1>, Arg<"Boolean">,
67    Desc<"A boolean value that sets whether stepping into functions will step "
68    "over functions with no debug information.">;
69  def thread_step_scope_step_out_avoids_no_debug :
70    Option<"step-out-avoids-no-debug", "A">, Group<1>, Arg<"Boolean">,
71    Desc<"A boolean value, if true stepping out of functions will continue to"
72    " step out till it hits a function with debug information.">;
73  def thread_step_scope_count : Option<"count", "c">, Group<1>, Arg<"Count">,
74    Desc<"How many times to perform the stepping operation - currently only "
75    "supported for step-inst and next-inst.">;
76  def thread_step_scope_end_linenumber : Option<"end-linenumber", "e">,
77    Group<1>, Arg<"LineNum">, Desc<"The line at which to stop stepping - "
78      "defaults to the next line and only supported for step-in and step-over."
79      "  You can also pass the string 'block' to step to the end of the current"
80      " block.  This is particularly use  in conjunction with --step-target to"
81      " step through a complex calling sequence.">;
82  def thread_step_scope_run_mode : Option<"run-mode", "m">, Group<1>,
83    EnumArg<"RunMode", "TriRunningModes()">, Desc<"Determine how to run other "
84    "threads while stepping the current thread.">;
85  def thread_step_scope_step_over_regexp : Option<"step-over-regexp", "r">,
86    Group<1>, Arg<"RegularExpression">, Desc<"A regular expression that defines"
87    "function names to not to stop at when stepping in.">;
88  def thread_step_scope_step_in_target : Option<"step-in-target", "t">,
89    Group<1>, Arg<"FunctionName">, Desc<"The name of the directly called "
90    "function step in should stop at when stepping into.">;
91  def thread_step_scope_python_class : Option<"python-class", "C">, Group<2>,
92    Arg<"PythonClass">, Desc<"The name of the class that will manage this step "
93    "- only supported for Scripted Step.">;
94}
95
96let Command = "thread until" in {
97  def thread_until_frame : Option<"frame", "f">, Group<1>, Arg<"FrameIndex">,
98    Desc<"Frame index for until operation - defaults to 0">;
99  def thread_until_thread : Option<"thread", "t">, Group<1>, Arg<"ThreadIndex">,
100    Desc<"Thread index for the thread for until operation">;
101  def thread_until_run_mode : Option<"run-mode", "m">, Group<1>,
102    EnumArg<"RunMode", "DuoRunningModes()">, Desc<"Determine how to run other"
103    "threads while stepping this one">;
104  def thread_until_address : Option<"address", "a">, Group<1>,
105    Arg<"AddressOrExpression">, Desc<"Run until we reach the specified address,"
106    "or leave the function - can be specified multiple times.">;
107}
108
109let Command = "thread info" in {
110  def thread_info_json : Option<"json", "j">, Desc<"Display the thread info in"
111    " JSON format.">;
112  def thread_info_stop_info : Option<"stop-info", "s">, Desc<"Display the "
113    "extended stop info in JSON format.">;
114}
115
116let Command = "thread return" in {
117  def thread_return_from_expression : Option<"from-expression", "x">,
118    Desc<"Return from the innermost expression evaluation.">;
119}
120
121let Command = "thread jump" in {
122  def thread_jump_file : Option<"file", "f">, Group<1>, Arg<"Filename">,
123    Completion<"SourceFile">, Desc<"Specifies the source file to jump to.">;
124  def thread_jump_line : Option<"line", "l">, Group<1>, Arg<"LineNum">,
125    Required, Desc<"Specifies the line number to jump to.">;
126  def thread_jump_by : Option<"by", "b">, Group<2>, Arg<"Offset">, Required,
127    Desc<"Jumps by a relative line offset from the current line.">;
128  def thread_jump_address : Option<"address", "a">, Group<3>,
129    Arg<"AddressOrExpression">, Required, Desc<"Jumps to a specific address.">;
130  def thread_jump_force : Option<"force", "r">, Groups<[1,2,3]>,
131    Desc<"Allows the PC to leave the current function.">;
132}
133
134let Command = "thread plan list" in {
135  def thread_plan_list_verbose : Option<"verbose", "v">, Group<1>,
136    Desc<"Display more information about the thread plans">;
137  def thread_plan_list_internal : Option<"internal", "i">, Group<1>,
138    Desc<"Display internal as well as user thread plans">;
139}
140
141let Command = "type summary add" in {
142  def type_summary_add_category : Option<"category", "w">, Arg<"Name">,
143    Desc<"Add this to the given category instead of the default one.">;
144  def type_summary_add_cascade : Option<"cascade", "C">, Arg<"Boolean">,
145    Desc<"If true, cascade through typedef chains.">;
146  def type_summary_add_no_value : Option<"no-value", "v">,
147    Desc<"Don't show the value, just show the summary, for this type.">;
148  def type_summary_add_skip_pointers : Option<"skip-pointers", "p">,
149    Desc<"Don't use this format for pointers-to-type objects.">;
150  def type_summary_add_skip_references : Option<"skip-references", "r">,
151    Desc<"Don't use this format for references-to-type objects.">;
152  def type_summary_add_regex : Option<"regex", "x">,
153    Desc<"Type names are actually regular expressions.">;
154  def type_summary_add_inline_children : Option<"inline-children", "c">,
155    Group<1>, Required,
156    Desc<"If true, inline all child values into summary string.">;
157  def type_summary_add_omit_names : Option<"omit-names", "O">, Group<1>,
158    Desc<"If true, omit value names in the summary display.">;
159  def type_summary_add_summary_string : Option<"summary-string", "s">, Group<2>,
160    Arg<"SummaryString">, Required,
161    Desc<"Summary string used to display text and object contents.">;
162  def type_summary_add_python_script : Option<"python-script", "o">, Group<3>,
163    Arg<"PythonScript">,
164    Desc<"Give a one-liner Python script as part of the command.">;
165  def type_summary_add_python_function : Option<"python-function", "F">,
166    Group<3>, Arg<"PythonFunction">,
167    Desc<"Give the name of a Python function to use for this type.">;
168  def type_summary_add_input_python : Option<"input-python", "P">, Group<3>,
169    Desc<"Input Python code to use for this type manually.">;
170  def type_summary_add_expand : Option<"expand", "e">, Groups<[2,3]>,
171    Desc<"Expand aggregate data types to show children on separate lines.">;
172  def type_summary_add_hide_empty : Option<"hide-empty", "h">, Groups<[2,3]>,
173    Desc<"Do not expand aggregate data types with no children.">;
174  def type_summary_add_name : Option<"name", "n">, Groups<[2,3]>, Arg<"Name">,
175    Desc<"A name for this summary string.">;
176}
177
178let Command = "type synth add" in {
179  def type_synth_add_cascade : Option<"cascade", "C">, Arg<"Boolean">,
180    Desc<"If true, cascade through typedef chains.">;
181  def type_synth_add_skip_pointers : Option<"skip-pointers", "p">,
182    Desc<"Don't use this format for pointers-to-type objects.">;
183  def type_synth_add_skip_references : Option<"skip-references", "r">,
184    Desc<"Don't use this format for references-to-type objects.">;
185  def type_synth_add_category : Option<"category", "w">, Arg<"Name">,
186    Desc<"Add this to the given category instead of the default one.">;
187  def type_synth_add_python_class : Option<"python-class", "l">, Group<2>,
188    Arg<"PythonClass">,
189    Desc<"Use this Python class to produce synthetic children.">;
190  def type_synth_add_input_python : Option<"input-python", "P">, Group<3>,
191    Desc<"Type Python code to generate a class that provides synthetic "
192    "children.">;
193  def type_synth_add_regex : Option<"regex", "x">,
194    Desc<"Type names are actually regular expressions.">;
195}
196
197let Command = "type format add" in {
198  def type_format_add_category : Option<"category", "w">, Arg<"Name">,
199    Desc<"Add this to the given category instead of the default one.">;
200  def type_format_add_cascade : Option<"cascade", "C">, Arg<"Boolean">,
201    Desc<"If true, cascade through typedef chains.">;
202  def type_format_add_skip_pointers : Option<"skip-pointers", "p">,
203    Desc<"Don't use this format for pointers-to-type objects.">;
204  def type_format_add_skip_references : Option<"skip-references", "r">,
205    Desc<"Don't use this format for references-to-type objects.">;
206  def type_format_add_regex : Option<"regex", "x">,
207    Desc<"Type names are actually regular expressions.">;
208  def type_format_add_type : Option<"type", "t">, Group<2>, Arg<"Name">,
209    Desc<"Format variables as if they were of this type.">;
210}
211
212let Command = "type formatter delete" in {
213  def type_formatter_delete_all : Option<"all", "a">, Group<1>,
214    Desc<"Delete from every category.">;
215  def type_formatter_delete_category : Option<"category", "w">, Group<2>,
216    Arg<"Name">, Desc<"Delete from given category.">;
217  def type_formatter_delete_language : Option<"language", "l">, Group<3>,
218    Arg<"Language">, Desc<"Delete from given language's category.">;
219}
220
221let Command = "type formatter clear" in {
222  def type_formatter_clear_all : Option<"all", "a">,
223    Desc<"Clear every category.">;
224}
225
226let Command = "type formatter list" in {
227  def type_formatter_list_category_regex : Option<"category-regex", "w">,
228    Group<1>, Arg<"Name">, Desc<"Only show categories matching this filter.">;
229  def type_formatter_list_language : Option<"language", "l">, Group<2>,
230    Arg<"Language">, Desc<"Only show the category for a specific language.">;
231}
232
233let Command = "type category define" in {
234  def type_category_define_enabled : Option<"enabled", "e">,
235    Desc<"If specified, this category will be created enabled.">;
236  def type_category_define_language : Option<"language", "l">, Arg<"Language">,
237    Desc<"Specify the language that this category is supported for.">;
238}
239
240let Command = "type category enable" in {
241  def type_category_enable_language : Option<"language", "l">, Arg<"Language">,
242    Desc<"Enable the category for this language.">;
243}
244
245let Command = "type category disable" in {
246  def type_category_disable_language : Option<"language", "l">, Arg<"Language">,
247    Desc<"Enable the category for this language.">;
248}
249
250let Command = "type filter add" in {
251  def type_filter_add_cascade : Option<"cascade", "C">, Arg<"Boolean">,
252    Desc<"If true, cascade through typedef chains.">;
253  def type_filter_add_skip_pointers : Option<"skip-pointers", "p">,
254    Desc<"Don't use this format for pointers-to-type objects.">;
255  def type_filter_add_skip_references : Option<"skip-references", "r">,
256    Desc<"Don't use this format for references-to-type objects.">;
257  def type_filter_add_category : Option<"category", "w">, Arg<"Name">,
258    Desc<"Add this to the given category instead of the default one.">;
259  def type_filter_add_child : Option<"child", "c">, Arg<"ExpressionPath">,
260    Desc<"Include this expression path in the synthetic view.">;
261  def type_filter_add_regex : Option<"regex", "x">,
262    Desc<"Type names are actually regular expressions.">;
263}
264
265let Command = "type lookup" in {
266  def type_lookup_show_help : Option<"show-help", "h">,
267    Desc<"Display available help for types">;
268  def type_lookup_language : Option<"language", "l">, Arg<"Language">,
269    Desc<"Which language's types should the search scope be">;
270}
271
272let Command = "watchpoint list" in {
273  def watchpoint_list_brief : Option<"brief", "b">, Group<1>, Desc<"Give a "
274    "brief description of the watchpoint (no location info).">;
275  def watchpoint_list_full : Option<"full", "f">, Group<2>, Desc<"Give a full "
276    "description of the watchpoint and its locations.">;
277  def watchpoint_list_verbose : Option<"verbose", "v">, Group<3>, Desc<"Explain"
278    "everything we know about the watchpoint (for debugging debugger bugs).">;
279}
280
281let Command = "watchpoint ignore" in {
282  def watchpoint_ignore_ignore_count : Option<"ignore-count", "i">,
283    Arg<"Count">, Required, Desc<"Set the number of times this watchpoint is"
284    " skipped before stopping.">;
285}
286
287let Command = "watchpoint modify" in {
288  def watchpoint_modify_condition : Option<"condition", "c">, Arg<"Expression">,
289    Desc<"The watchpoint stops only if this condition expression evaluates "
290    "to true.">;
291}
292
293let Command = "watchpoint command add" in {
294  def watchpoint_command_add_one_liner : Option<"one-liner", "o">, Group<1>,
295    Arg<"OneLiner">, Desc<"Specify a one-line watchpoint command inline. Be "
296    "sure to surround it with quotes.">;
297  def watchpoint_command_add_stop_on_error : Option<"stop-on-error", "e">,
298    Arg<"Boolean">, Desc<"Specify whether watchpoint command execution should "
299    "terminate on error.">;
300  def watchpoint_command_add_script_type : Option<"script-type", "s">,
301    EnumArg<"None", "ScriptOptionEnum()">, Desc<"Specify the language for the"
302    " commands - if none is specified, the lldb command interpreter will be "
303    "used.">;
304  def watchpoint_command_add_python_function : Option<"python-function", "F">,
305    Group<2>, Arg<"PythonFunction">, Desc<"Give the name of a Python function "
306    "to run as command for this watchpoint. Be sure to give a module name if "
307    "appropriate.">;
308}
309