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