]> git.baikalelectronics.ru Git - kernel.git/commitdiff
scripts/decode_stacktrace: strip basepath from all paths
authorPi-Hsun Shih <pihsun@chromium.org>
Fri, 24 Jul 2020 04:15:43 +0000 (21:15 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 24 Jul 2020 19:42:42 +0000 (12:42 -0700)
Currently the basepath is removed only from the beginning of the string.
When the symbol is inlined and there's multiple line outputs of
addr2line, only the first line would have basepath removed.

Change to remove the basepath prefix from all lines.

Fixes: ad5e6aa400ab ("scripts/decode_stacktrace: match basepath using shell prefix operator, not regex")
Co-developed-by: Shik Chen <shik@chromium.org>
Signed-off-by: Pi-Hsun Shih <pihsun@chromium.org>
Signed-off-by: Shik Chen <shik@chromium.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Cc: Sasha Levin <sashal@kernel.org>
Cc: Nicolas Boichat <drinkcat@chromium.org>
Cc: Jiri Slaby <jslaby@suse.cz>
Link: http://lkml.kernel.org/r/20200720082709.252805-1-pihsun@chromium.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
scripts/decode_stacktrace.sh

index 66a6d511b5247111b84aa6d1eb5c811fc34be9f9..0869def435ee78f999e90ccdc5d2335685e74144 100755 (executable)
@@ -87,8 +87,8 @@ parse_symbol() {
                return
        fi
 
-       # Strip out the base of the path
-       code=${code#$basepath/}
+       # Strip out the base of the path on each line
+       code=$(while read -r line; do echo "${line#$basepath/}"; done <<< "$code")
 
        # In the case of inlines, move everything to same line
        code=${code//$'\n'/' '}