diff options
author | Ingo Molnar | 2017-10-23 13:30:47 +0200 |
---|---|---|
committer | Ingo Molnar | 2017-10-23 13:30:47 +0200 |
commit | f95b23a112f1a31ea042483540cd907b58d23a5f (patch) | |
tree | 3d41d2f8cf1d66ed593deb12f25a30d2905eb077 /scripts/faddr2line | |
parent | x86/entry: Use SYSCALL_DEFINE() macros for sys_modify_ldt() (diff) | |
parent | x86/unwind: Show function name+offset in ORC error messages (diff) | |
download | kernel-qcow2-linux-f95b23a112f1a31ea042483540cd907b58d23a5f.tar.gz kernel-qcow2-linux-f95b23a112f1a31ea042483540cd907b58d23a5f.tar.xz kernel-qcow2-linux-f95b23a112f1a31ea042483540cd907b58d23a5f.zip |
Merge branch 'x86/urgent' into x86/asm, to pick up dependent fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'scripts/faddr2line')
-rwxr-xr-x | scripts/faddr2line | 5 |
1 files 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 |