Skip to content

Commit

Permalink
scripts/decode_stacktrace.sh: guess basepath if not specified
Browse files Browse the repository at this point in the history
Guess path to kernel sources using known location of symbol "kernel_init".
Make basepath argument optional.

Before:

$ echo 'vfs_open+0x0/0x0' | ./scripts/decode_stacktrace.sh vmlinux ""
vfs_open (home/khlebnikov/src/linux/fs/open.c:912)

After:

$ echo 'vfs_open+0x0/0x0' | ./scripts/decode_stacktrace.sh vmlinux
vfs_open (fs/open.c:912)

Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Sasha Levin <sashal@kernel.org>
Link: http://lkml.kernel.org/r/159282922803.248444.2379229451667913634.stgit@buzz
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
koct9i authored and torvalds committed Aug 7, 2020
1 parent f643b9e commit ecda6e2
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions scripts/decode_stacktrace.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
# (c) 2014, Sasha Levin <sasha.levin@oracle.com>
#set -x

if [[ $# < 2 ]]; then
if [[ $# < 1 ]]; then
echo "Usage:"
echo " $0 [vmlinux] [base path] [modules path]"
echo " $0 <vmlinux> [base path] [modules path]"
exit 1
fi

vmlinux=$1
basepath=$2
basepath=${2-auto}
modpath=$3
declare -A cache
declare -A modcache
Expand Down Expand Up @@ -152,6 +152,14 @@ handle_line() {
echo "${words[@]}" "$symbol $module"
}

if [[ $basepath == "auto" ]] ; then
module=""
symbol="kernel_init+0x0/0x0"
parse_symbol
basepath=${symbol#kernel_init (}
basepath=${basepath%/init/main.c:*)}
fi

while read line; do
# Let's see if we have an address in the line
if [[ $line =~ \[\<([^]]+)\>\] ]] ||
Expand Down

0 comments on commit ecda6e2

Please sign in to comment.