mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-28 16:43:09 +00:00
Add the llvm-symbolizer tool, which enables the sanitizers to report
more complete debugging information. This tools is only enabled when WITH_CLANG_EXTRAS is on. Submitted by: Dan McGregor <danismostlikely@gmail.com>
This commit is contained in:
parent
f91be99b1f
commit
c369979c46
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=276945
@ -548,13 +548,12 @@ OLD_FILES+=usr/bin/llvm-bcanalyzer
|
||||
OLD_FILES+=usr/bin/llvm-diff
|
||||
OLD_FILES+=usr/bin/llvm-dis
|
||||
OLD_FILES+=usr/bin/llvm-extract
|
||||
OLD_FILES+=usr/bin/llvm-ld
|
||||
OLD_FILES+=usr/bin/llvm-link
|
||||
OLD_FILES+=usr/bin/llvm-mc
|
||||
OLD_FILES+=usr/bin/llvm-nm
|
||||
OLD_FILES+=usr/bin/llvm-objdump
|
||||
OLD_FILES+=usr/bin/llvm-rtdyld
|
||||
OLD_FILES+=usr/bin/llvm-stub
|
||||
OLD_FILES+=usr/bin/llvm-symbolizer
|
||||
OLD_FILES+=usr/bin/macho-dump
|
||||
OLD_FILES+=usr/bin/opt
|
||||
OLD_FILES+=usr/share/man/man1/bugpoint.1.gz
|
||||
@ -566,9 +565,9 @@ OLD_FILES+=usr/share/man/man1/llvm-bcanalyzer.1.gz
|
||||
OLD_FILES+=usr/share/man/man1/llvm-diff.1.gz
|
||||
OLD_FILES+=usr/share/man/man1/llvm-dis.1.gz
|
||||
OLD_FILES+=usr/share/man/man1/llvm-extract.1.gz
|
||||
OLD_FILES+=usr/share/man/man1/llvm-ld.1.gz
|
||||
OLD_FILES+=usr/share/man/man1/llvm-link.1.gz
|
||||
OLD_FILES+=usr/share/man/man1/llvm-nm.1.gz
|
||||
OLD_FILES+=usr/share/man/man1/llvm-symbolizer.1.gz
|
||||
OLD_FILES+=usr/share/man/man1/opt.1.gz
|
||||
.endif
|
||||
|
||||
|
@ -20,6 +20,7 @@ SUBDIR+=bugpoint \
|
||||
llvm-nm \
|
||||
llvm-objdump \
|
||||
llvm-rtdyld \
|
||||
llvm-symbolizer \
|
||||
macho-dump \
|
||||
opt
|
||||
.endif
|
||||
|
22
usr.bin/clang/llvm-symbolizer/Makefile
Normal file
22
usr.bin/clang/llvm-symbolizer/Makefile
Normal file
@ -0,0 +1,22 @@
|
||||
# $FreeBSD$
|
||||
|
||||
.include <bsd.own.mk>
|
||||
|
||||
PROG_CXX=llvm-symbolizer
|
||||
|
||||
SRCDIR= tools/llvm-symbolizer
|
||||
SRCS= llvm-symbolizer.cpp \
|
||||
LLVMSymbolize.cpp
|
||||
|
||||
LIBDEPS=llvmdebuginfo \
|
||||
llvmobject \
|
||||
llvmmcparser \
|
||||
llvmmc \
|
||||
llvmbitreader \
|
||||
llvmcore \
|
||||
llvmsupport
|
||||
|
||||
.include "../clang.prog.mk"
|
||||
|
||||
DPADD+= ${LIBZ}
|
||||
LDADD+= -lz
|
137
usr.bin/clang/llvm-symbolizer/llvm-symbolizer.1
Normal file
137
usr.bin/clang/llvm-symbolizer/llvm-symbolizer.1
Normal file
@ -0,0 +1,137 @@
|
||||
.\" $FreeBSD$
|
||||
.\" Man page generated from reStructuredText.
|
||||
.
|
||||
.TH "LLVM-SYMBOLIZER" "1" "2015-01-10" "3.5" "LLVM"
|
||||
.SH NAME
|
||||
llvm-symbolizer \- convert addresses into source code locations
|
||||
.
|
||||
.nr rst2man-indent-level 0
|
||||
.
|
||||
.de1 rstReportMargin
|
||||
\\$1 \\n[an-margin]
|
||||
level \\n[rst2man-indent-level]
|
||||
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
-
|
||||
\\n[rst2man-indent0]
|
||||
\\n[rst2man-indent1]
|
||||
\\n[rst2man-indent2]
|
||||
..
|
||||
.de1 INDENT
|
||||
.\" .rstReportMargin pre:
|
||||
. RS \\$1
|
||||
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
|
||||
. nr rst2man-indent-level +1
|
||||
.\" .rstReportMargin post:
|
||||
..
|
||||
.de UNINDENT
|
||||
. RE
|
||||
.\" indent \\n[an-margin]
|
||||
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.nr rst2man-indent-level -1
|
||||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.SH SYNOPSIS
|
||||
.sp
|
||||
\fBllvm\-symbolizer\fP [options]
|
||||
.SH DESCRIPTION
|
||||
.sp
|
||||
\fBllvm\-symbolizer\fP reads object file names and addresses from standard
|
||||
input and prints corresponding source code locations to standard output.
|
||||
If object file is specified in command line, \fBllvm\-symbolizer\fP reads
|
||||
only addresses from standard input. This
|
||||
program uses debug info sections and symbol table in the object files.
|
||||
.SH EXAMPLE
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
.sp
|
||||
.nf
|
||||
.ft C
|
||||
$ cat addr.txt
|
||||
a.out 0x4004f4
|
||||
/tmp/b.out 0x400528
|
||||
/tmp/c.so 0x710
|
||||
/tmp/mach_universal_binary:i386 0x1f84
|
||||
/tmp/mach_universal_binary:x86_64 0x100000f24
|
||||
$ llvm\-symbolizer < addr.txt
|
||||
main
|
||||
/tmp/a.cc:4
|
||||
|
||||
f(int, int)
|
||||
/tmp/b.cc:11
|
||||
|
||||
h_inlined_into_g
|
||||
/tmp/header.h:2
|
||||
g_inlined_into_f
|
||||
/tmp/header.h:7
|
||||
f_inlined_into_main
|
||||
/tmp/source.cc:3
|
||||
main
|
||||
/tmp/source.cc:8
|
||||
|
||||
_main
|
||||
/tmp/source_i386.cc:8
|
||||
|
||||
_main
|
||||
/tmp/source_x86_64.cc:8
|
||||
$ cat addr2.txt
|
||||
0x4004f4
|
||||
0x401000
|
||||
$ llvm\-symbolizer \-obj=a.out < addr2.txt
|
||||
main
|
||||
/tmp/a.cc:4
|
||||
|
||||
foo(int)
|
||||
/tmp/a.cc:12
|
||||
.ft P
|
||||
.fi
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.SH OPTIONS
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-obj
|
||||
Path to object file to be symbolized.
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-functions=[none|short|linkage]
|
||||
Specify the way function names are printed (omit function name,
|
||||
print short function name, or print full linkage name, respectively).
|
||||
Defaults to \fBlinkage\fP\&.
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-use\-symbol\-table
|
||||
Prefer function names stored in symbol table to function names
|
||||
in debug info sections. Defaults to true.
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-demangle
|
||||
Print demangled function names. Defaults to true.
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-inlining
|
||||
If a source code location is in an inlined function, prints all the
|
||||
inlnied frames. Defaults to true.
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \-default\-arch
|
||||
If a binary contains object files for multiple architectures (e.g. it is a
|
||||
Mach\-O universal binary), symbolize the object file for a given architecture.
|
||||
You can also specify architecture by writing \fBbinary_name:arch_name\fP in the
|
||||
input (see example above). If architecture is not specified in either way,
|
||||
address will not be symbolized. Defaults to empty string.
|
||||
.UNINDENT
|
||||
.SH EXIT STATUS
|
||||
.sp
|
||||
\fBllvm\-symbolizer\fP returns 0. Other exit codes imply internal program error.
|
||||
.SH AUTHOR
|
||||
Maintained by The LLVM Team (http://llvm.org/).
|
||||
.SH COPYRIGHT
|
||||
2003-2014, LLVM Project
|
||||
.\" Generated by docutils manpage writer.
|
||||
.
|
Loading…
Reference in New Issue
Block a user