aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-06-05 12:04:46 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2018-06-05 12:04:46 -0400
commit9b68ac2204ec4cbd1ff8bf2dc24be378042efc83 (patch)
tree5d37ff038fc91d6b5291b7a242831570c61f3395
parent716a685fdb89942a50c4138141027e38336a895f (diff)
parent2562c011f89785dea5b7e12449c587527dba3d2f (diff)
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
-rw-r--r--MAINTAINERS5
-rwxr-xr-xscripts/faddr2line18
2 files changed, 21 insertions, 2 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index aa635837a6af..c3e2e7076a95 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -5415,6 +5415,11 @@ S: Maintained
5415F: Documentation/hwmon/f71805f 5415F: Documentation/hwmon/f71805f
5416F: drivers/hwmon/f71805f.c 5416F: drivers/hwmon/f71805f.c
5417 5417
5418FADDR2LINE
5419M: Josh Poimboeuf <jpoimboe@redhat.com>
5420S: Maintained
5421F: scripts/faddr2line
5422
5418FANOTIFY 5423FANOTIFY
5419M: Jan Kara <jack@suse.cz> 5424M: Jan Kara <jack@suse.cz>
5420R: Amir Goldstein <amir73il@gmail.com> 5425R: Amir Goldstein <amir73il@gmail.com>
diff --git a/scripts/faddr2line b/scripts/faddr2line
index 1876a741087c..a0149db00be7 100755
--- a/scripts/faddr2line
+++ b/scripts/faddr2line
@@ -56,7 +56,7 @@ command -v ${SIZE} >/dev/null 2>&1 || die "size isn't installed"
56command -v ${NM} >/dev/null 2>&1 || die "nm isn't installed" 56command -v ${NM} >/dev/null 2>&1 || die "nm isn't installed"
57 57
58usage() { 58usage() {
59 echo "usage: faddr2line <object file> <func+offset> <func+offset>..." >&2 59 echo "usage: faddr2line [--list] <object file> <func+offset> <func+offset>..." >&2
60 exit 1 60 exit 1
61} 61}
62 62
@@ -166,15 +166,25 @@ __faddr2line() {
166 local file_lines=$(${ADDR2LINE} -fpie $objfile $addr | sed "s; $dir_prefix\(\./\)*; ;") 166 local file_lines=$(${ADDR2LINE} -fpie $objfile $addr | sed "s; $dir_prefix\(\./\)*; ;")
167 [[ -z $file_lines ]] && return 167 [[ -z $file_lines ]] && return
168 168
169 if [[ $LIST = 0 ]]; then
170 echo "$file_lines" | while read -r line
171 do
172 echo $line
173 done
174 DONE=1;
175 return
176 fi
177
169 # show each line with context 178 # show each line with context
170 echo "$file_lines" | while read -r line 179 echo "$file_lines" | while read -r line
171 do 180 do
181 echo
172 echo $line 182 echo $line
173 n=$(echo $line | sed 's/.*:\([0-9]\+\).*/\1/g') 183 n=$(echo $line | sed 's/.*:\([0-9]\+\).*/\1/g')
174 n1=$[$n-5] 184 n1=$[$n-5]
175 n2=$[$n+5] 185 n2=$[$n+5]
176 f=$(echo $line | sed 's/.*at \(.\+\):.*/\1/g') 186 f=$(echo $line | sed 's/.*at \(.\+\):.*/\1/g')
177 awk 'NR>=strtonum("'$n1'") && NR<=strtonum("'$n2'") {printf("%d\t%s\n", NR, $0)}' $f 187 awk 'NR>=strtonum("'$n1'") && NR<=strtonum("'$n2'") { if (NR=='$n') printf(">%d<", NR); else printf(" %d ", NR); printf("\t%s\n", $0)}' $f
178 done 188 done
179 189
180 DONE=1 190 DONE=1
@@ -185,6 +195,10 @@ __faddr2line() {
185[[ $# -lt 2 ]] && usage 195[[ $# -lt 2 ]] && usage
186 196
187objfile=$1 197objfile=$1
198
199LIST=0
200[[ "$objfile" == "--list" ]] && LIST=1 && shift && objfile=$1
201
188[[ ! -f $objfile ]] && die "can't find objfile $objfile" 202[[ ! -f $objfile ]] && die "can't find objfile $objfile"
189shift 203shift
190 204