diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-06-05 12:04:46 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-06-05 12:04:46 -0400 |
commit | 9b68ac2204ec4cbd1ff8bf2dc24be378042efc83 (patch) | |
tree | 5d37ff038fc91d6b5291b7a242831570c61f3395 | |
parent | 716a685fdb89942a50c4138141027e38336a895f (diff) | |
parent | 2562c011f89785dea5b7e12449c587527dba3d2f (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-- | MAINTAINERS | 5 | ||||
-rwxr-xr-x | scripts/faddr2line | 18 |
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 | |||
5415 | F: Documentation/hwmon/f71805f | 5415 | F: Documentation/hwmon/f71805f |
5416 | F: drivers/hwmon/f71805f.c | 5416 | F: drivers/hwmon/f71805f.c |
5417 | 5417 | ||
5418 | FADDR2LINE | ||
5419 | M: Josh Poimboeuf <jpoimboe@redhat.com> | ||
5420 | S: Maintained | ||
5421 | F: scripts/faddr2line | ||
5422 | |||
5418 | FANOTIFY | 5423 | FANOTIFY |
5419 | M: Jan Kara <jack@suse.cz> | 5424 | M: Jan Kara <jack@suse.cz> |
5420 | R: Amir Goldstein <amir73il@gmail.com> | 5425 | R: 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" | |||
56 | command -v ${NM} >/dev/null 2>&1 || die "nm isn't installed" | 56 | command -v ${NM} >/dev/null 2>&1 || die "nm isn't installed" |
57 | 57 | ||
58 | usage() { | 58 | usage() { |
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 | ||
187 | objfile=$1 | 197 | objfile=$1 |
198 | |||
199 | LIST=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" |
189 | shift | 203 | shift |
190 | 204 | ||