mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] scripts: fix faddr2line to work on last symbol
@ 2017-10-12  3:22 NeilBrown
  2017-10-12 15:55 ` Josh Poimboeuf
  0 siblings, 1 reply; 4+ messages in thread
From: NeilBrown @ 2017-10-12  3:22 UTC (permalink / raw)
  To: Linus Torvalds, Ingo Molnar; +Cc: LKML, Josh Poimboeuf

[-- Attachment #1: Type: text/plain, Size: 1524 bytes --]


If faddr2line is given a function name which is the
last one listed by "nm -n", it will fail because it
never finds the next symbol.

So teach the awk script to catch that possibility,
and use 'size' to provide the end point of the last
function.

Signed-off-by: NeilBrown <neilb@suse.com>
---
 scripts/faddr2line | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/scripts/faddr2line b/scripts/faddr2line
index 29df825d375c..2f6ce802397d 100755
--- a/scripts/faddr2line
+++ b/scripts/faddr2line
@@ -103,11 +103,12 @@ __faddr2line() {
 
 	# Go through each of the object's symbols which match the func name.
 	# In rare cases there might be duplicates.
+	file_end=$(size -Ax $objfile | awk '$1 == ".text" {print $2}')
 	while read symbol; do
 		local fields=($symbol)
 		local sym_base=0x${fields[0]}
 		local sym_type=${fields[1]}
-		local sym_end=0x${fields[3]}
+		local sym_end=${fields[3]}
 
 		# calculate the size
 		local sym_size=$(($sym_end - $sym_base))
@@ -157,7 +158,7 @@ __faddr2line() {
 		addr2line -fpie $objfile $addr | sed "s; $dir_prefix\(\./\)*; ;"
 		DONE=1
 
-	done < <(nm -n $objfile | awk -v fn=$func '$3 == fn { found=1; line=$0; start=$1; next } found == 1 { found=0; print line, $1 }')
+	done < <(nm -n $objfile | awk -v fn=$func -v end=$file_end '$3 == fn { found=1; line=$0; start=$1; next } found == 1 { found=0; print line, "0x"$1 } END {if (found == 1) print line, end; }')
 }
 
 [[ $# -lt 2 ]] && usage
-- 
2.14.0.rc0.dirty


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-10-12 21:40 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-12  3:22 [PATCH] scripts: fix faddr2line to work on last symbol NeilBrown
2017-10-12 15:55 ` Josh Poimboeuf
2017-10-12 19:27   ` Linus Torvalds
2017-10-12 21:40   ` NeilBrown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome