From e78c62a4e59d15729dfefa9c9f1e09ded462c87e Mon Sep 17 00:00:00 2001 From: Igor Kudrin Date: Fri, 19 Apr 2019 10:14:18 +0000 Subject: [PATCH] [llvm-symbolizer] Unhide and document the "-output-style" option With the latest changes, the option gets useful for users of llvm-symbolizer, not only for the upcoming llvm-addr2line. Differential Revision: https://reviews.llvm.org/D60816 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358748 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/CommandGuide/llvm-symbolizer.rst | 31 +++++++++++++++++++++++ tools/llvm-symbolizer/llvm-symbolizer.cpp | 2 +- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/docs/CommandGuide/llvm-symbolizer.rst b/docs/CommandGuide/llvm-symbolizer.rst index b794f56246f..4dd6d9bf28b 100644 --- a/docs/CommandGuide/llvm-symbolizer.rst +++ b/docs/CommandGuide/llvm-symbolizer.rst @@ -128,6 +128,37 @@ OPTIONS Add the specified offset to object file addresses when performing lookups. This can be used to perform lookups as if the object were relocated by the offset. +.. option:: -output-style= + + Specify the preferred output style. Defaults to ``LLVM``. When the output + style is set to ``GNU``, the tool follows the style of GNU's **addr2line**. + The differences from the ``LLVM`` style are: + + * Does not print column of a source code location. + + * Does not add an empty line after the report for an address. + + * Does not replace the name of an inlined function with the name of the + topmost caller when inlined frames are not shown and ``-use-symbol-table`` + is on. + + .. code-block:: console + + $ llvm-symbolizer -p -e=addr.exe 0x40054d 0x400568 + inc at /tmp/x.c:3:3 + (inlined by) main at /tmp/x.c:14:0 + + main at /tmp/x.c:14:3 + + $ llvm-symbolizer --output-style=LLVM -p -i=0 -e=addr.exe 0x40054d 0x400568 + main at /tmp/x.c:3:3 + + main at /tmp/x.c:14:3 + + $ llvm-symbolizer --output-style=GNU -p -i=0 -e=addr.exe 0x40054d 0x400568 + inc at /tmp/x.c:3 + main at /tmp/x.c:14 + EXIT STATUS ----------- diff --git a/tools/llvm-symbolizer/llvm-symbolizer.cpp b/tools/llvm-symbolizer/llvm-symbolizer.cpp index c57f5f85c86..aa6635fc92f 100644 --- a/tools/llvm-symbolizer/llvm-symbolizer.cpp +++ b/tools/llvm-symbolizer/llvm-symbolizer.cpp @@ -148,7 +148,7 @@ static cl::opt static cl::opt ClOutputStyle("output-style", cl::init(DIPrinter::OutputStyle::LLVM), - cl::desc("Specify print style"), cl::Hidden, + cl::desc("Specify print style"), cl::values(clEnumValN(DIPrinter::OutputStyle::LLVM, "LLVM", "LLVM default style"), clEnumValN(DIPrinter::OutputStyle::GNU, "GNU", -- 2.50.1