scripts/decode_stacktrace.sh: handle RIP address with segment
authorKonstantin Khlebnikov <khlebnikov@yandex-team.ru>
Tue, 5 Mar 2019 23:41:34 +0000 (15:41 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 6 Mar 2019 05:07:13 +0000 (21:07 -0800)
decode line:

  RIP: 0010:khugepaged+0x2a2/0x2280

into

  RIP: 0010:khugepaged (mm/khugepaged.c:1885)

Link: http://lkml.kernel.org/r/154660071227.52726.15645307951282727605.stgit@buzz
Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
scripts/decode_stacktrace.sh

index 98a7d63a723e3bf49b8d4542ea5d5da090ca64c3..bcdd45df3f5127a160b3c79f835502a47e1a169b 100755 (executable)
@@ -37,6 +37,13 @@ parse_symbol() {
        symbol=${symbol#\(}
        symbol=${symbol%\)}
 
+       # Strip segment
+       local segment
+       if [[ $symbol == *:* ]] ; then
+               segment=${symbol%%:*}:
+               symbol=${symbol#*:}
+       fi
+
        # Strip the symbol name so that we could look it up
        local name=${symbol%+*}
 
@@ -84,7 +91,7 @@ parse_symbol() {
        code=${code//$'\n'/' '}
 
        # Replace old address with pretty line numbers
-       symbol="$name ($code)"
+       symbol="$segment$name ($code)"
 }
 
 decode_code() {