scripts/decode_stacktrace.sh: Fix address line detection on x86
authorJosh Poimboeuf <jpoimboe@redhat.com>
Mon, 28 Nov 2016 23:06:35 +0000 (17:06 -0600)
committerIngo Molnar <mingo@kernel.org>
Tue, 29 Nov 2016 13:19:50 +0000 (14:19 +0100)
Kirill reported that the decode_stacktrace.sh script was broken by the
following commit:

  bb5e5ce545f2 ("x86/dumpstack: Remove kernel text addresses from stack dump")

Fix it by updating the per-line absolute address check to also check for
function-based address lines like the following:

  write_sysrq_trigger+0x51/0x60

I didn't remove the check for absolute addresses because it's still
needed for ARM.

Reported-by: Kirill A. Shutemov <kirill@shutemov.name>
Tested-by: Kirill A. Shutemov <kirill@shutemov.name>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Konstantin Khlebnikov <koct9i@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Sasha Levin <alexander.levin@verizon.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Fixes: bb5e5ce545f2 ("x86/dumpstack: Remove kernel text addresses from stack dump")
Link: http://lkml.kernel.org/r/20161128230635.4n2ofgawltgexgcg@treble
Signed-off-by: Ingo Molnar <mingo@kernel.org>
scripts/decode_stacktrace.sh

index c332684e1b5ace1e4ea8a357ed83b5931e04cdfd..5206d99ddeb876e0456e6aa0d088e168219005a7 100755 (executable)
@@ -139,7 +139,8 @@ handle_line() {
 
 while read line; do
        # Let's see if we have an address in the line
-       if [[ $line =~ \[\<([^]]+)\>\]  ]]; then
+       if [[ $line =~ \[\<([^]]+)\>\] ]] ||
+          [[ $line =~ [^+\ ]+\+0x[0-9a-f]+/0x[0-9a-f]+ ]]; then
                # Translate address to line numbers
                handle_line "$line"
        # Is it a code line?