1include "../../include/lldb/Core/PropertiesBase.td"
2
3let Definition = "target_experimental" in {
4  def InjectLocalVars : Property<"inject-local-vars", "Boolean">,
5    Global, DefaultTrue,
6    Desc<"If true, inject local variables explicitly into the expression text. This will fix symbol resolution when there are name collisions between ivars and local variables. But it can make expressions run much more slowly.">;
7}
8
9let Definition = "target" in {
10  def DefaultArch: Property<"default-arch", "Arch">,
11    Global,
12    DefaultStringValue<"">,
13    Desc<"Default architecture to choose, when there's a choice.">;
14  def MoveToNearestCode: Property<"move-to-nearest-code", "Boolean">,
15    DefaultTrue,
16    Desc<"Move breakpoints to nearest code.">;
17  def Language: Property<"language", "Language">,
18    DefaultEnumValue<"eLanguageTypeUnknown">,
19    Desc<"The language to use when interpreting expressions entered in commands.">;
20  def ExprPrefix: Property<"expr-prefix", "FileSpec">,
21    DefaultStringValue<"">,
22    Desc<"Path to a file containing expressions to be prepended to all expressions.">;
23  def ExprErrorLimit: Property<"expr-error-limit", "UInt64">,
24    DefaultUnsignedValue<5>,
25    Desc<"The maximum amount of errors to emit while parsing an expression. "
26         "A value of 0 means to always continue parsing if possible.">;
27  def PreferDynamic: Property<"prefer-dynamic-value", "Enum">,
28    DefaultEnumValue<"eDynamicDontRunTarget">,
29    EnumValues<"OptionEnumValues(g_dynamic_value_types)">,
30    Desc<"Should printed values be shown as their dynamic value.">;
31  def EnableSynthetic: Property<"enable-synthetic-value", "Boolean">,
32    DefaultTrue,
33    Desc<"Should synthetic values be used by default whenever available.">;
34  def SkipPrologue: Property<"skip-prologue", "Boolean">,
35    DefaultTrue,
36    Desc<"Skip function prologues when setting breakpoints by name.">;
37  def SourceMap: Property<"source-map", "PathMap">,
38    DefaultStringValue<"">,
39    Desc<"Source path remappings are used to track the change of location between a source file when built, and where it exists on the current system.  It consists of an array of duples, the first element of each duple is some part (starting at the root) of the path to the file when it was built, and the second is where the remainder of the original build hierarchy is rooted on the local system.  Each element of the array is checked in order and the first one that results in a match wins.">;
40  def ExecutableSearchPaths: Property<"exec-search-paths", "FileSpecList">,
41    DefaultStringValue<"">,
42    Desc<"Executable search paths to use when locating executable files whose paths don't match the local file system.">;
43  def DebugFileSearchPaths: Property<"debug-file-search-paths", "FileSpecList">,
44    DefaultStringValue<"">,
45    Desc<"List of directories to be searched when locating debug symbol files. See also symbols.enable-external-lookup.">;
46  def ClangModuleSearchPaths: Property<"clang-module-search-paths", "FileSpecList">,
47    DefaultStringValue<"">,
48    Desc<"List of directories to be searched when locating modules for Clang.">;
49  def AutoImportClangModules: Property<"auto-import-clang-modules", "Boolean">,
50    DefaultTrue,
51    Desc<"Automatically load Clang modules referred to by the program.">;
52  def ImportStdModule: Property<"import-std-module", "Boolean">,
53    DefaultFalse,
54    Desc<"Import the C++ std module to improve debugging STL containers.">;
55  def AutoApplyFixIts: Property<"auto-apply-fixits", "Boolean">,
56    DefaultTrue,
57    Desc<"Automatically apply fix-it hints to expressions.">;
58  def RetriesWithFixIts: Property<"retries-with-fixits", "UInt64">,
59    DefaultUnsignedValue<1>,
60    Desc<"Maximum number of attempts to fix an expression with Fix-Its">;
61  def NotifyAboutFixIts: Property<"notify-about-fixits", "Boolean">,
62    DefaultTrue,
63    Desc<"Print the fixed expression text.">;
64  def SaveObjects: Property<"save-jit-objects", "Boolean">,
65    DefaultFalse,
66    Desc<"Save intermediate object files generated by the LLVM JIT">;
67  def MaxZeroPaddingInFloatFormat: Property<"max-zero-padding-in-float-format", "UInt64">,
68    DefaultUnsignedValue<6>,
69    Desc<"The maximum number of zeroes to insert when displaying a very small float before falling back to scientific notation.">;
70  def MaxChildrenCount: Property<"max-children-count", "SInt64">,
71    DefaultUnsignedValue<256>,
72    Desc<"Maximum number of children to expand in any level of depth.">;
73  def MaxSummaryLength: Property<"max-string-summary-length", "SInt64">,
74    DefaultUnsignedValue<1024>,
75    Desc<"Maximum number of characters to show when using %s in summary strings.">;
76  def MaxMemReadSize: Property<"max-memory-read-size", "SInt64">,
77    DefaultUnsignedValue<1024>,
78    Desc<"Maximum number of bytes that 'memory read' will fetch before --force must be specified.">;
79  def BreakpointUseAvoidList: Property<"breakpoints-use-platform-avoid-list", "Boolean">,
80    DefaultTrue,
81    Desc<"Consult the platform module avoid list when setting non-module specific breakpoints.">;
82  def Arg0: Property<"arg0", "String">,
83    DefaultStringValue<"">,
84    Desc<"The first argument passed to the program in the argument array which can be different from the executable itself.">;
85  def RunArgs: Property<"run-args", "Args">,
86    DefaultStringValue<"">,
87    Desc<"A list containing all the arguments to be passed to the executable when it is run. Note that this does NOT include the argv[0] which is in target.arg0.">;
88  def EnvVars: Property<"env-vars", "Dictionary">,
89    ElementType<"String">,
90    Desc<"A list of user provided environment variables to be passed to the executable's environment, and their values.">;
91  def UnsetEnvVars: Property<"unset-env-vars", "Array">,
92    ElementType<"String">,
93    Desc<"A list of environment variable names to be unset in the inferior's environment. This is most useful to unset some host environment variables when target.inherit-env is true. target.env-vars takes precedence over target.unset-env-vars.">;
94  def InheritEnv: Property<"inherit-env", "Boolean">,
95    DefaultTrue,
96    Desc<"Inherit the environment from the process that is running LLDB.">;
97  def InputPath: Property<"input-path", "FileSpec">,
98    DefaultStringValue<"">,
99    Desc<"The file/path to be used by the executable program for reading its standard input.">;
100  def OutputPath: Property<"output-path", "FileSpec">,
101    DefaultStringValue<"">,
102    Desc<"The file/path to be used by the executable program for writing its standard output.">;
103  def ErrorPath: Property<"error-path", "FileSpec">,
104    DefaultStringValue<"">,
105    Desc<"The file/path to be used by the executable program for writing its standard error.">;
106  def DetachOnError: Property<"detach-on-error", "Boolean">,
107    DefaultTrue,
108    Desc<"debugserver will detach (rather than killing) a process if it loses connection with lldb.">;
109  def PreloadSymbols: Property<"preload-symbols", "Boolean">,
110    DefaultTrue,
111    Desc<"Enable loading of symbol tables before they are needed.">;
112  def DisableASLR: Property<"disable-aslr", "Boolean">,
113    DefaultTrue,
114    Desc<"Disable Address Space Layout Randomization (ASLR)">;
115  def DisableSTDIO: Property<"disable-stdio", "Boolean">,
116    DefaultFalse,
117    Desc<"Disable stdin/stdout for process (e.g. for a GUI application)">;
118  def InheritTCC: Property<"inherit-tcc", "Boolean">,
119    DefaultFalse,
120    Desc<"Inherit the TCC permissions from the inferior's parent instead of making the process itself responsible.">;
121  def InlineStrategy: Property<"inline-breakpoint-strategy", "Enum">,
122    DefaultEnumValue<"eInlineBreakpointsAlways">,
123    EnumValues<"OptionEnumValues(g_inline_breakpoint_enums)">,
124    Desc<"The strategy to use when settings breakpoints by file and line. Breakpoint locations can end up being inlined by the compiler, so that a compile unit 'a.c' might contain an inlined function from another source file. Usually this is limited to breakpoint locations from inlined functions from header or other include files, or more accurately non-implementation source files. Sometimes code might #include implementation files and cause inlined breakpoint locations in inlined implementation files. Always checking for inlined breakpoint locations can be expensive (memory and time), so if you have a project with many headers and find that setting breakpoints is slow, then you can change this setting to headers. This setting allows you to control exactly which strategy is used when setting file and line breakpoints.">;
125  def DisassemblyFlavor: Property<"x86-disassembly-flavor", "Enum">,
126    DefaultEnumValue<"eX86DisFlavorDefault">,
127    EnumValues<"OptionEnumValues(g_x86_dis_flavor_value_types)">,
128    Desc<"The default disassembly flavor to use for x86 or x86-64 targets.">;
129  def UseHexImmediates: Property<"use-hex-immediates", "Boolean">,
130    DefaultTrue,
131    Desc<"Show immediates in disassembly as hexadecimal.">;
132  def HexImmediateStyle: Property<"hex-immediate-style", "Enum">,
133    DefaultEnumValue<"Disassembler::eHexStyleC">,
134    EnumValues<"OptionEnumValues(g_hex_immediate_style_values)">,
135    Desc<"Which style to use for printing hexadecimal disassembly values.">;
136  def UseFastStepping: Property<"use-fast-stepping", "Boolean">,
137    DefaultTrue,
138    Desc<"Use a fast stepping algorithm based on running from branch to branch rather than instruction single-stepping.">;
139  def LoadScriptFromSymbolFile: Property<"load-script-from-symbol-file", "Enum">,
140    DefaultEnumValue<"eLoadScriptFromSymFileWarn">,
141    EnumValues<"OptionEnumValues(g_load_script_from_sym_file_values)">,
142    Desc<"Allow LLDB to load scripting resources embedded in symbol files when available.">;
143  def LoadCWDlldbinitFile: Property<"load-cwd-lldbinit", "Enum">,
144    DefaultEnumValue<"eLoadCWDlldbinitWarn">,
145    EnumValues<"OptionEnumValues(g_load_cwd_lldbinit_values)">,
146    Desc<"Allow LLDB to .lldbinit files from the current directory automatically.">;
147  def MemoryModuleLoadLevel: Property<"memory-module-load-level", "Enum">,
148    DefaultEnumValue<"eMemoryModuleLoadLevelComplete">,
149    EnumValues<"OptionEnumValues(g_memory_module_load_level_values)">,
150    Desc<"Loading modules from memory can be slow as reading the symbol tables and other data can take a long time depending on your connection to the debug target. This setting helps users control how much information gets loaded when loading modules from memory.'complete' is the default value for this setting which will load all sections and symbols by reading them from memory (slowest, most accurate). 'partial' will load sections and attempt to find function bounds without downloading the symbol table (faster, still accurate, missing symbol names). 'minimal' is the fastest setting and will load section data with no symbols, but should rarely be used as stack frames in these memory regions will be inaccurate and not provide any context (fastest). ">;
151  def DisplayExpressionsInCrashlogs: Property<"display-expression-in-crashlogs", "Boolean">,
152    DefaultFalse,
153    Desc<"Expressions that crash will show up in crash logs if the host system supports executable specific crash log strings and this setting is set to true.">;
154  def TrapHandlerNames: Property<"trap-handler-names", "Array">,
155    Global,
156    ElementType<"String">,
157    Desc<"A list of trap handler function names, e.g. a common Unix user process one is _sigtramp.">;
158  def DisplayRuntimeSupportValues: Property<"display-runtime-support-values", "Boolean">,
159    DefaultFalse,
160    Desc<"If true, LLDB will show variables that are meant to support the operation of a language's runtime support.">;
161  def DisplayRecognizedArguments: Property<"display-recognized-arguments", "Boolean">,
162    DefaultFalse,
163    Desc<"Show recognized arguments in variable listings by default.">;
164  def NonStopModeEnabled: Property<"non-stop-mode", "Boolean">,
165    DefaultFalse,
166    Desc<"Disable lock-step debugging, instead control threads independently.">;
167  def RequireHardwareBreakpoints: Property<"require-hardware-breakpoint", "Boolean">,
168    DefaultFalse,
169    Desc<"Require all breakpoints to be hardware breakpoints.">;
170  def AutoInstallMainExecutable: Property<"auto-install-main-executable", "Boolean">,
171    DefaultTrue,
172    Desc<"Always install the main executable when connected to a remote platform.">;
173}
174
175let Definition = "process_experimental" in {
176  def OSPluginReportsAllThreads: Property<"os-plugin-reports-all-threads", "Boolean">,
177    Global,
178    DefaultTrue,
179    Desc<"Set to False if your OS Plugins doesn't report all threads on each stop.">;
180}
181
182let Definition = "process" in {
183  def DisableMemCache: Property<"disable-memory-cache", "Boolean">,
184    DefaultFalse,
185    Desc<"Disable reading and caching of memory in fixed-size units.">;
186  def ExtraStartCommand: Property<"extra-startup-command", "Array">,
187    ElementType<"String">,
188    Desc<"A list containing extra commands understood by the particular process plugin used.  For instance, to turn on debugserver logging set this to 'QSetLogging:bitmask=LOG_DEFAULT;'">;
189  def IgnoreBreakpointsInExpressions: Property<"ignore-breakpoints-in-expressions", "Boolean">,
190    Global,
191    DefaultTrue,
192    Desc<"If true, breakpoints will be ignored during expression evaluation.">;
193  def UnwindOnErrorInExpressions: Property<"unwind-on-error-in-expressions", "Boolean">,
194    Global,
195    DefaultTrue,
196    Desc<"If true, errors in expression evaluation will unwind the stack back to the state before the call.">;
197  def PythonOSPluginPath: Property<"python-os-plugin-path", "FileSpec">,
198    DefaultUnsignedValue<1>,
199    Desc<"A path to a python OS plug-in module file that contains a OperatingSystemPlugIn class.">;
200  def StopOnSharedLibraryEvents: Property<"stop-on-sharedlibrary-events", "Boolean">,
201    Global,
202    DefaultFalse,
203    Desc<"If true, stop when a shared library is loaded or unloaded.">;
204  def DetachKeepsStopped: Property<"detach-keeps-stopped", "Boolean">,
205    Global,
206    DefaultFalse,
207    Desc<"If true, detach will attempt to keep the process stopped.">;
208  def MemCacheLineSize: Property<"memory-cache-line-size", "UInt64">,
209    DefaultUnsignedValue<512>,
210    Desc<"The memory cache line size">;
211  def WarningOptimization: Property<"optimization-warnings", "Boolean">,
212    DefaultTrue,
213    Desc<"If true, warn when stopped in code that is optimized where stepping and variable availability may not behave as expected.">;
214  def WarningUnsupportedLanguage: Property<"unsupported-language-warnings", "Boolean">,
215    DefaultTrue,
216    Desc<"If true, warn when stopped in code that is written in a source language that LLDB does not support.">;
217  def StopOnExec: Property<"stop-on-exec", "Boolean">,
218    Global,
219    DefaultTrue,
220    Desc<"If true, stop when a shared library is loaded or unloaded.">;
221  def UtilityExpressionTimeout: Property<"utility-expression-timeout", "UInt64">,
222    DefaultUnsignedValue<15>,
223    Desc<"The time in seconds to wait for LLDB-internal utility expressions.">;
224  def SteppingRunsAllThreads: Property<"run-all-threads", "Boolean">,
225    DefaultFalse,
226    Desc<"If true, stepping operations will run all threads.  This is equivalent to setting the run-mode option to 'all-threads'.">;
227}
228
229let Definition = "platform" in {
230  def UseModuleCache: Property<"use-module-cache", "Boolean">,
231    Global,
232    DefaultTrue,
233    Desc<"Use module cache.">;
234  def ModuleCacheDirectory: Property<"module-cache-directory", "FileSpec">,
235    Global,
236    DefaultStringValue<"">,
237    Desc<"Root directory for cached modules.">;
238}
239
240let Definition = "thread" in {
241  def StepInAvoidsNoDebug: Property<"step-in-avoid-nodebug", "Boolean">,
242    Global,
243    DefaultTrue,
244    Desc<"If true, step-in will not stop in functions with no debug information.">;
245  def StepOutAvoidsNoDebug: Property<"step-out-avoid-nodebug", "Boolean">,
246    Global,
247    DefaultFalse,
248    Desc<"If true, when step-in/step-out/step-over leave the current frame, they will continue to step out till they come to a function with debug information. Passing a frame argument to step-out will override this option.">;
249  def StepAvoidRegex: Property<"step-avoid-regexp", "Regex">,
250    Global,
251    DefaultStringValue<"^std::">,
252    Desc<"A regular expression defining functions step-in won't stop in.">;
253  def StepAvoidLibraries: Property<"step-avoid-libraries", "FileSpecList">,
254    Global,
255    DefaultStringValue<"">,
256    Desc<"A list of libraries that source stepping won't stop in.">;
257  def EnableThreadTrace: Property<"trace-thread", "Boolean">,
258    DefaultFalse,
259    Desc<"If true, this thread will single-step and log execution.">;
260  def MaxBacktraceDepth: Property<"max-backtrace-depth", "UInt64">,
261    DefaultUnsignedValue<300000>,
262    Desc<"Maximum number of frames to backtrace.">;
263}
264