scripts/decode_stacktrace: warn when modpath is needed but is unset
authorSasha Levin <sashal@kernel.org>
Mon, 15 Jun 2020 22:24:27 +0000 (18:24 -0400)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 15 Jun 2020 22:37:24 +0000 (15:37 -0700)
When a user tries to parse a symbol located inside a module he must have
modpath set. Otherwise, decode_stacktrace won't be able to parse the
symbol correctly.

Right now the failure is silent and easily missed by the user. What's
worse is that by the time the user realizes what happened (or someone on
LKML asks him to add the modpath and re-run), he might have already got
rid of the vmlinux/modules.

Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
scripts/decode_stacktrace.sh

index 13e5fbafdf2f71573a4d098e246e8545a7a0ea8c..66a6d511b5247111b84aa6d1eb5c811fc34be9f9 100755 (executable)
@@ -27,7 +27,10 @@ parse_symbol() {
        elif [[ "${modcache[$module]+isset}" == "isset" ]]; then
                local objfile=${modcache[$module]}
        else
-               [[ $modpath == "" ]] && return
+               if [[ $modpath == "" ]]; then
+                       echo "WARNING! Modules path isn't set, but is needed to parse this symbol" >&2
+                       return
+               fi
                local objfile=$(find "$modpath" -name "${module//_/[-_]}.ko*" -print -quit)
                [[ $objfile == "" ]] && return
                modcache[$module]=$objfile