Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9b68ac22 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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
parents 716a685f 2562c011
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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>
+16 −2
Original line number Diff line number Diff line
@@ -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