|
| 1 | +include "llvm/Option/OptParser.td" |
| 2 | + |
| 3 | +multiclass B<string name, string help1, string help2> { |
| 4 | + def NAME: Flag<["--", "-"], name>, HelpText<help1>; |
| 5 | + def no_ # NAME: Flag<["--", "-"], "no-" # name>, HelpText<help2>; |
| 6 | +} |
| 7 | + |
| 8 | +multiclass Eq<string name, string help> { |
| 9 | + def NAME #_EQ : Joined<["--", "-"], name #"=">, |
| 10 | + HelpText<help>; |
| 11 | + def : Separate<["--", "-"], name>, Alias<!cast<Joined>(NAME #_EQ)>; |
| 12 | +} |
| 13 | + |
| 14 | +class F<string name, string help>: Flag<["--", "-"], name>, HelpText<help>; |
| 15 | + |
| 16 | +def addresses : F<"addresses", "Show address before line information">; |
| 17 | +defm adjust_vma |
| 18 | + : Eq<"adjust-vma", "Add specified offset to object file addresses">, |
| 19 | + MetaVarName<"<offset>">; |
| 20 | +def basenames : Flag<["--"], "basenames">, HelpText<"Strip directory names from paths">; |
| 21 | +defm debug_file_directory : Eq<"debug-file-directory", "Path to directory where to look for debug files">, MetaVarName<"<dir>">; |
| 22 | +defm default_arch : Eq<"default-arch", "Default architecture (for multi-arch objects)">; |
| 23 | +defm demangle : B<"demangle", "Demangle function names", "Don't demangle function names">; |
| 24 | +def functions : F<"functions", "Print function name for a given address">; |
| 25 | +def functions_EQ : Joined<["--"], "functions=">, HelpText<"Print function name for a given address">, Values<"none,short,linkage">; |
| 26 | +def help : F<"help", "Display this help">; |
| 27 | +defm dwp : Eq<"dwp", "Path to DWP file to be use for any split CUs">, MetaVarName<"<file>">; |
| 28 | +defm dsym_hint : Eq<"dsym-hint", "Path to .dSYM bundles to search for debug info for the object files">, MetaVarName<"<dir>">; |
| 29 | +defm fallback_debug_path : Eq<"fallback-debug-path", "Fallback path for debug binaries">, MetaVarName<"<dir>">; |
| 30 | +defm inlines : B<"inlines", "Print all inlined frames for a given address", |
| 31 | + "Do not print inlined frames">; |
| 32 | +defm obj |
| 33 | + : Eq<"obj", "Path to object file to be symbolized (if not provided, " |
| 34 | + "object file should be specified for each input line)">, MetaVarName<"<file>">; |
| 35 | +defm output_style |
| 36 | + : Eq<"output-style", "Specify print style. Supported styles: LLVM, GNU">, |
| 37 | + MetaVarName<"style">, |
| 38 | + Values<"LLVM,GNU">; |
| 39 | +def pretty_print : F<"pretty-print", "Make the output more human friendly">; |
| 40 | +defm print_source_context_lines : Eq<"print-source-context-lines", "Print N lines of source file context">; |
| 41 | +def relative_address : F<"relative-address", "Interpret addresses as addresses relative to the image base">; |
| 42 | +def relativenames : F<"relativenames", "Strip the compilation directory from paths">; |
| 43 | +defm untag_addresses : B<"untag-addresses", "", "Remove memory tags from addresses before symbolization">; |
| 44 | +def use_native_pdb_reader : F<"use-native-pdb-reader", "Use native PDB functionality">; |
| 45 | +def verbose : F<"verbose", "Print verbose line info">; |
| 46 | + |
| 47 | +def : Flag<["-"], "a">, Alias<addresses>, HelpText<"Alias for --addresses">; |
| 48 | +def : F<"print-address", "Alias for --addresses">, Alias<addresses>; |
| 49 | +def : Flag<["-"], "C">, Alias<demangle>, HelpText<"Alias for --demangle">; |
| 50 | +def : Joined<["--"], "exe=">, Alias<obj_EQ>, HelpText<"Alias for --obj">, MetaVarName<"<file>">; |
| 51 | +def : Separate<["--"], "exe">, Alias<obj_EQ>, HelpText<"Alias for --obj">, MetaVarName<"<file>">; |
| 52 | +def : JoinedOrSeparate<["-"], "e">, Alias<obj_EQ>, HelpText<"Alias for --obj">, MetaVarName<"<file>">; |
| 53 | +def : Joined<["-"], "e=">, Alias<obj_EQ>, HelpText<"Alias for --obj">, MetaVarName<"<file>">; |
| 54 | +def : Flag<["-"], "f">, Alias<functions>, HelpText<"Alias for --functions">; |
| 55 | +def : Joined<["-"], "f=">, Alias<functions_EQ>, HelpText<"Alias for --functions=">; |
| 56 | +def : Flag<["-"], "h">, Alias<help>; |
| 57 | +def : Flag<["-"], "i">, Alias<inlines>, HelpText<"Alias for --inlines">; |
| 58 | +def : F<"inlining", "Alias for --inlines">, Alias<inlines>; |
| 59 | +def : Flag<["-"], "p">, Alias<pretty_print>, HelpText<"Alias for --pretty-print">; |
| 60 | +def : Flag<["-"], "s">, Alias<basenames>, HelpText<"Alias for --basenames">; |
0 commit comments