Merge branch 'faddr2line' (patches from Josh)
Merge faddr2line updates from Josh Poimboeuf: - revert faddr2line's default output to its original non-code-listing output, and make the code listing an optional feature - give faddr2line a real maintainer, so get_maintainer.pl will actually CC me on future patches * emailed patches from Josh Poimboeuf <jpoimboe@redhat.com>: MAINTAINERS: add Josh Poimboeuf as faddr2line maintainer scripts/faddr2line: make the new code listing format optional
This commit is contained in:
commit
9b68ac2204
|
@ -5415,6 +5415,11 @@ S: Maintained
|
|||
F: Documentation/hwmon/f71805f
|
||||
F: drivers/hwmon/f71805f.c
|
||||
|
||||
FADDR2LINE
|
||||
M: Josh Poimboeuf <jpoimboe@redhat.com>
|
||||
S: Maintained
|
||||
F: scripts/faddr2line
|
||||
|
||||
FANOTIFY
|
||||
M: Jan Kara <jack@suse.cz>
|
||||
R: Amir Goldstein <amir73il@gmail.com>
|
||||
|
|
|
@ -56,7 +56,7 @@ command -v ${SIZE} >/dev/null 2>&1 || die "size isn't installed"
|
|||
command -v ${NM} >/dev/null 2>&1 || die "nm isn't installed"
|
||||
|
||||
usage() {
|
||||
echo "usage: faddr2line <object file> <func+offset> <func+offset>..." >&2
|
||||
echo "usage: faddr2line [--list] <object file> <func+offset> <func+offset>..." >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
@ -166,15 +166,25 @@ __faddr2line() {
|
|||
local file_lines=$(${ADDR2LINE} -fpie $objfile $addr | sed "s; $dir_prefix\(\./\)*; ;")
|
||||
[[ -z $file_lines ]] && return
|
||||
|
||||
if [[ $LIST = 0 ]]; then
|
||||
echo "$file_lines" | while read -r line
|
||||
do
|
||||
echo $line
|
||||
done
|
||||
DONE=1;
|
||||
return
|
||||
fi
|
||||
|
||||
# show each line with context
|
||||
echo "$file_lines" | while read -r line
|
||||
do
|
||||
echo
|
||||
echo $line
|
||||
n=$(echo $line | sed 's/.*:\([0-9]\+\).*/\1/g')
|
||||
n1=$[$n-5]
|
||||
n2=$[$n+5]
|
||||
f=$(echo $line | sed 's/.*at \(.\+\):.*/\1/g')
|
||||
awk 'NR>=strtonum("'$n1'") && NR<=strtonum("'$n2'") {printf("%d\t%s\n", NR, $0)}' $f
|
||||
awk 'NR>=strtonum("'$n1'") && NR<=strtonum("'$n2'") { if (NR=='$n') printf(">%d<", NR); else printf(" %d ", NR); printf("\t%s\n", $0)}' $f
|
||||
done
|
||||
|
||||
DONE=1
|
||||
|
@ -185,6 +195,10 @@ __faddr2line() {
|
|||
[[ $# -lt 2 ]] && usage
|
||||
|
||||
objfile=$1
|
||||
|
||||
LIST=0
|
||||
[[ "$objfile" == "--list" ]] && LIST=1 && shift && objfile=$1
|
||||
|
||||
[[ ! -f $objfile ]] && die "can't find objfile $objfile"
|
||||
shift
|
||||
|
||||
|
|
Loading…
Reference in New Issue