Skip to content

Commit 9b68ac2

Browse files
committed
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 <[email protected]>: MAINTAINERS: add Josh Poimboeuf as faddr2line maintainer scripts/faddr2line: make the new code listing format optional
2 parents 716a685 + 2562c01 commit 9b68ac2

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

MAINTAINERS

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5415,6 +5415,11 @@ S: Maintained
54155415
F: Documentation/hwmon/f71805f
54165416
F: drivers/hwmon/f71805f.c
54175417

5418+
FADDR2LINE
5419+
M: Josh Poimboeuf <[email protected]>
5420+
S: Maintained
5421+
F: scripts/faddr2line
5422+
54185423
FANOTIFY
54195424
M: Jan Kara <[email protected]>
54205425
R: Amir Goldstein <[email protected]>

scripts/faddr2line

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ command -v ${SIZE} >/dev/null 2>&1 || die "size isn't installed"
5656
command -v ${NM} >/dev/null 2>&1 || die "nm isn't installed"
5757

5858
usage() {
59-
echo "usage: faddr2line <object file> <func+offset> <func+offset>..." >&2
59+
echo "usage: faddr2line [--list] <object file> <func+offset> <func+offset>..." >&2
6060
exit 1
6161
}
6262

@@ -166,15 +166,25 @@ __faddr2line() {
166166
local file_lines=$(${ADDR2LINE} -fpie $objfile $addr | sed "s; $dir_prefix\(\./\)*; ;")
167167
[[ -z $file_lines ]] && return
168168

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+
169178
# show each line with context
170179
echo "$file_lines" | while read -r line
171180
do
181+
echo
172182
echo $line
173183
n=$(echo $line | sed 's/.*:\([0-9]\+\).*/\1/g')
174184
n1=$[$n-5]
175185
n2=$[$n+5]
176186
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
178188
done
179189

180190
DONE=1
@@ -185,6 +195,10 @@ __faddr2line() {
185195
[[ $# -lt 2 ]] && usage
186196

187197
objfile=$1
198+
199+
LIST=0
200+
[[ "$objfile" == "--list" ]] && LIST=1 && shift && objfile=$1
201+
188202
[[ ! -f $objfile ]] && die "can't find objfile $objfile"
189203
shift
190204

0 commit comments

Comments
 (0)