Skip to contentSkip to conversation

faddr2line fix and MAINTAINERS update

PATCH In review Josh Poimboeuf 2 participants 4 messages Jun 4, 2018 – Jun 5, 2018 FADDR2LINE

lore
Share & tools
lore
#0 lore raw

cover faddr2line fix and MAINTAINERS update

Linus, would you be willing to pick these up directly, or would you rather me route them through somebody else?

Patch 1 reverts faddr2line's default output to its original non-code-listing output, and makes the code listing an optional feature.

Patch 2 gives faddr2line a real maintainer, so get_maintainer.pl will actually CC me on future patches.

Josh Poimboeuf (1):
MAINTAINERS: add Josh Poimboeuf as faddr2line maintainer

Peter Zijlstra (Intel) (1):
scripts/faddr2line: make the new code listing format optional

 MAINTAINERS        |  5 +++++
 scripts/faddr2line | 18 ++++++++++++++++--
 2 files changed, 21 insertions(+), 2 deletions(-)
Signature · 1 line
2.17.0
#1 lore raw

PATCH 1/2 scripts/faddr2line: make the new code listing format optional

From: "Peter Zijlstra (Intel)" <[email protected]>

Commit 6870c0165feaa5 ("scripts/faddr2line: show the code context") radically altered the output format of the faddr2line tool. And while the new list output format might have merit it broke my vim usage and was hard to read.

Make the new format optional; using a '--list' argument and attempt to make the output slightly easier to read by adding a little whitespace to separate the different files and explicitly mark the line in question.

Cc Changbin Du <[email protected]>
Fixes 6870c0165feaa5 ("scripts/faddr2line: show the code context")
---
 scripts/faddr2line | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)
scripts/faddr2line +16 -2
index 1876a741087c..a0149db00be7 100755
@@ -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
 
Signature · 1 line
2.17.0
#2 lore raw

PATCH 2/2 MAINTAINERS: add Josh Poimboeuf as faddr2line maintainer

In reply to Josh Poimboeuf

... so I finally get credit for my greatest accomplishment.

And, less importantly, so get_maintainer.pl will actually CC me on future patches.

---
 MAINTAINERS | 5 +++++
 1 file changed, 5 insertions(+)
MAINTAINERS +5 -0
index ca4afd68530c..93f55753142a 100644
@@ -5413,6 +5413,11 @@ S:	Maintained
 F:	Documentation/hwmon/f71805f
 F:	drivers/hwmon/f71805f.c
 
+FADDR2LINE
+M:	Josh Poimboeuf <[email protected]>
+S:	Maintained
+F:	scripts/faddr2line
+
 FANOTIFY
 M:	Jan Kara <[email protected]>
 R:	Amir Goldstein <[email protected]>
Signature · 1 line
2.17.0
#3 lore raw
In reply to Josh Poimboeuf
Quoted 3 lines · Josh Poimboeuf

Linus, would you be willing to pick these up directly, or would you rather me route them through somebody else?

I took them directly.

That said, if you had a git tree, that would have fit my merge-window workflow better. I've been very good at getting people to send me patch-series as git trees, with mainly just Andrew as the stalwart patch user.

Single patches I obviously take as patches, but whenever I see even a small patch series like this I tend to go "Hmm, git is _so_ convenient".

Hint hint, for the future.

Linus