1e8d8bef9SDimitry Andricinclude "llvm/Option/OptParser.td" 2e8d8bef9SDimitry Andric 3e8d8bef9SDimitry Andricmulticlass B<string name, string help1, string help2> { 4*fe6060f1SDimitry Andric def NAME: Flag<["--"], name>, HelpText<help1>; 5*fe6060f1SDimitry Andric def no_ # NAME: Flag<["--"], "no-" # name>, HelpText<help2>; 6e8d8bef9SDimitry Andric} 7e8d8bef9SDimitry Andric 8e8d8bef9SDimitry Andricmulticlass Eq<string name, string help> { 9*fe6060f1SDimitry Andric def NAME #_EQ : Joined<["--"], name #"=">, 10e8d8bef9SDimitry Andric HelpText<help>; 11*fe6060f1SDimitry Andric def : Separate<["--"], name>, Alias<!cast<Joined>(NAME #_EQ)>; 12e8d8bef9SDimitry Andric} 13e8d8bef9SDimitry Andric 14*fe6060f1SDimitry Andricclass F<string name, string help>: Flag<["--"], name>, HelpText<help>; 15*fe6060f1SDimitry Andric 16*fe6060f1SDimitry Andricdef grp_mach_o : OptionGroup<"kind">, 17*fe6060f1SDimitry Andric HelpText<"llvm-symbolizer Mach-O Specific Options">; 18e8d8bef9SDimitry Andric 19e8d8bef9SDimitry Andricdef addresses : F<"addresses", "Show address before line information">; 20e8d8bef9SDimitry Andricdefm adjust_vma 21e8d8bef9SDimitry Andric : Eq<"adjust-vma", "Add specified offset to object file addresses">, 22e8d8bef9SDimitry Andric MetaVarName<"<offset>">; 23e8d8bef9SDimitry Andricdef basenames : Flag<["--"], "basenames">, HelpText<"Strip directory names from paths">; 24e8d8bef9SDimitry Andricdefm debug_file_directory : Eq<"debug-file-directory", "Path to directory where to look for debug files">, MetaVarName<"<dir>">; 25*fe6060f1SDimitry Andricdefm default_arch 26*fe6060f1SDimitry Andric : Eq<"default-arch", "Default architecture (for multi-arch objects)">, 27*fe6060f1SDimitry Andric Group<grp_mach_o>; 28e8d8bef9SDimitry Andricdefm demangle : B<"demangle", "Demangle function names", "Don't demangle function names">; 29e8d8bef9SDimitry Andricdef functions : F<"functions", "Print function name for a given address">; 30e8d8bef9SDimitry Andricdef functions_EQ : Joined<["--"], "functions=">, HelpText<"Print function name for a given address">, Values<"none,short,linkage">; 31e8d8bef9SDimitry Andricdef help : F<"help", "Display this help">; 32e8d8bef9SDimitry Andricdefm dwp : Eq<"dwp", "Path to DWP file to be use for any split CUs">, MetaVarName<"<file>">; 33*fe6060f1SDimitry Andricdefm dsym_hint 34*fe6060f1SDimitry Andric : Eq<"dsym-hint", 35*fe6060f1SDimitry Andric "Path to .dSYM bundles to search for debug info for the object files">, 36*fe6060f1SDimitry Andric MetaVarName<"<dir>">, 37*fe6060f1SDimitry Andric Group<grp_mach_o>; 38e8d8bef9SDimitry Andricdefm fallback_debug_path : Eq<"fallback-debug-path", "Fallback path for debug binaries">, MetaVarName<"<dir>">; 39e8d8bef9SDimitry Andricdefm inlines : B<"inlines", "Print all inlined frames for a given address", 40e8d8bef9SDimitry Andric "Do not print inlined frames">; 41e8d8bef9SDimitry Andricdefm obj 42e8d8bef9SDimitry Andric : Eq<"obj", "Path to object file to be symbolized (if not provided, " 43e8d8bef9SDimitry Andric "object file should be specified for each input line)">, MetaVarName<"<file>">; 44e8d8bef9SDimitry Andricdefm output_style 45*fe6060f1SDimitry Andric : Eq<"output-style", "Specify print style. Supported styles: LLVM, GNU, JSON">, 46e8d8bef9SDimitry Andric MetaVarName<"style">, 47*fe6060f1SDimitry Andric Values<"LLVM,GNU,JSON">; 48e8d8bef9SDimitry Andricdef pretty_print : F<"pretty-print", "Make the output more human friendly">; 49e8d8bef9SDimitry Andricdefm print_source_context_lines : Eq<"print-source-context-lines", "Print N lines of source file context">; 50e8d8bef9SDimitry Andricdef relative_address : F<"relative-address", "Interpret addresses as addresses relative to the image base">; 51e8d8bef9SDimitry Andricdef relativenames : F<"relativenames", "Strip the compilation directory from paths">; 52e8d8bef9SDimitry Andricdefm untag_addresses : B<"untag-addresses", "", "Remove memory tags from addresses before symbolization">; 53e8d8bef9SDimitry Andricdef use_dia: F<"dia", "Use the DIA library to access symbols (Windows only)">; 54e8d8bef9SDimitry Andricdef verbose : F<"verbose", "Print verbose line info">; 55e8d8bef9SDimitry Andricdef version : F<"version", "Display the version">; 56e8d8bef9SDimitry Andric 57e8d8bef9SDimitry Andricdef : Flag<["-"], "a">, Alias<addresses>, HelpText<"Alias for --addresses">; 58e8d8bef9SDimitry Andricdef : F<"print-address", "Alias for --addresses">, Alias<addresses>; 59e8d8bef9SDimitry Andricdef : Flag<["-"], "C">, Alias<demangle>, HelpText<"Alias for --demangle">; 60e8d8bef9SDimitry Andricdef : Joined<["--"], "exe=">, Alias<obj_EQ>, HelpText<"Alias for --obj">, MetaVarName<"<file>">; 61e8d8bef9SDimitry Andricdef : Separate<["--"], "exe">, Alias<obj_EQ>, HelpText<"Alias for --obj">, MetaVarName<"<file>">; 62e8d8bef9SDimitry Andricdef : JoinedOrSeparate<["-"], "e">, Alias<obj_EQ>, HelpText<"Alias for --obj">, MetaVarName<"<file>">; 63e8d8bef9SDimitry Andricdef : Joined<["-"], "e=">, Alias<obj_EQ>, HelpText<"Alias for --obj">, MetaVarName<"<file>">; 64e8d8bef9SDimitry Andricdef : Flag<["-"], "f">, Alias<functions>, HelpText<"Alias for --functions">; 65e8d8bef9SDimitry Andricdef : Joined<["-"], "f=">, Alias<functions_EQ>, HelpText<"Alias for --functions=">; 66e8d8bef9SDimitry Andricdef : Flag<["-"], "h">, Alias<help>; 67e8d8bef9SDimitry Andricdef : Flag<["-"], "i">, Alias<inlines>, HelpText<"Alias for --inlines">; 68e8d8bef9SDimitry Andricdef : F<"inlining", "Alias for --inlines">, Alias<inlines>; 69e8d8bef9SDimitry Andricdef : Flag<["-"], "p">, Alias<pretty_print>, HelpText<"Alias for --pretty-print">; 70e8d8bef9SDimitry Andricdef : Flag<["-"], "s">, Alias<basenames>, HelpText<"Alias for --basenames">; 71e8d8bef9SDimitry Andricdef : Flag<["-"], "v">, Alias<version>, HelpText<"Alias for --version">; 72e8d8bef9SDimitry Andric 73e8d8bef9SDimitry Andric// Compatibility aliases for old asan_symbolize.py and sanitizer binaries (before 2020-08). 74e8d8bef9SDimitry Andricdef : Flag<["--"], "inlining=true">, Alias<inlines>, HelpText<"Alias for --inlines">; 75e8d8bef9SDimitry Andricdef : Flag<["--"], "inlining=false">, Alias<no_inlines>, HelpText<"Alias for --no-inlines">; 76e8d8bef9SDimitry Andric// Compatibility aliases for pprof's symbolizer. 77e8d8bef9SDimitry Andricdef : Flag<["-"], "demangle=true">, Alias<demangle>, HelpText<"Alias for --demangle">; 78e8d8bef9SDimitry Andricdef : Flag<["-"], "demangle=false">, Alias<no_demangle>, HelpText<"Alias for --no-demangle">; 79e8d8bef9SDimitry Andric// Compatibility no-op options. 80e8d8bef9SDimitry Andricdef : Flag<["--"], "use-symbol-table=true">; 81