Merge tag 'for-linus-5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw...
[linux-2.6-microblaze.git] / scripts / decode_stacktrace.sh
index ca21f8b..5fbad61 100755 (executable)
@@ -5,7 +5,7 @@
 
 usage() {
        echo "Usage:"
-       echo "  $0 -r <release> | <vmlinux> [base path] [modules path]"
+       echo "  $0 -r <release> | <vmlinux> [<base path>|auto] [<modules path>]"
 }
 
 if [[ $1 == "-r" ]] ; then
@@ -74,7 +74,7 @@ find_module() {
        find_module && return
 
        if [[ $release == "" ]] ; then
-               release=$(gdb -ex 'print init_uts_ns.name.release' -ex 'quit' -quiet -batch "$vmlinux" | sed -n 's/\$1 = "\(.*\)".*/\1/p')
+               release=$(gdb -ex 'print init_uts_ns.name.release' -ex 'quit' -quiet -batch "$vmlinux" 2>/dev/null | sed -n 's/\$1 = "\(.*\)".*/\1/p')
        fi
 
        for dn in {/usr/lib/debug,}/lib/modules/$release ; do
@@ -128,7 +128,7 @@ parse_symbol() {
        if [[ "${cache[$module,$name]+isset}" == "isset" ]]; then
                local base_addr=${cache[$module,$name]}
        else
-               local base_addr=$(nm "$objfile" | awk '$3 == "'$name'" && ($2 == "t" || $2 == "T") {print $1; exit}')
+               local base_addr=$(nm "$objfile" 2>/dev/null | awk '$3 == "'$name'" && ($2 == "t" || $2 == "T") {print $1; exit}')
                if [[ $base_addr == "" ]] ; then
                        # address not found
                        return
@@ -152,7 +152,7 @@ parse_symbol() {
        if [[ "${cache[$module,$address]+isset}" == "isset" ]]; then
                local code=${cache[$module,$address]}
        else
-               local code=$(${CROSS_COMPILE}addr2line -i -e "$objfile" "$address")
+               local code=$(${CROSS_COMPILE}addr2line -i -e "$objfile" "$address" 2>/dev/null)
                cache[$module,$address]=$code
        fi