[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

llvm-svn: 358748
This commit is contained in:
Igor Kudrin 2019-04-19 10:14:18 +00:00
parent 4bc29cbf6b
commit 1b71b7f3b8
2 changed files with 32 additions and 1 deletions

View File

@ -128,6 +128,37 @@ OPTIONS
Add the specified offset to object file addresses when performing lookups. This 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. can be used to perform lookups as if the object were relocated by the offset.
.. option:: -output-style=<LLVM|GNU>
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 EXIT STATUS
----------- -----------

View File

@ -148,7 +148,7 @@ static cl::opt<std::string>
static cl::opt<DIPrinter::OutputStyle> static cl::opt<DIPrinter::OutputStyle>
ClOutputStyle("output-style", cl::init(DIPrinter::OutputStyle::LLVM), 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", cl::values(clEnumValN(DIPrinter::OutputStyle::LLVM, "LLVM",
"LLVM default style"), "LLVM default style"),
clEnumValN(DIPrinter::OutputStyle::GNU, "GNU", clEnumValN(DIPrinter::OutputStyle::GNU, "GNU",