summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjorn Andersson <quic_bjorande@quicinc.com>2023-12-25 09:40:35 -0800
committerAndrew Morton <akpm@linux-foundation.org>2023-12-29 12:22:31 -0800
commit436efd9e4b657b8b659c7f482f7106e521b09891 (patch)
tree1f02af6882b71459884512e28398f8b55a2d8e29
parent55efe4abf927aca3692870a1851067f309e9a374 (diff)
downloadlwn-436efd9e4b657b8b659c7f482f7106e521b09891.tar.gz
lwn-436efd9e4b657b8b659c7f482f7106e521b09891.zip
scripts/decode_stacktrace.sh: strip unexpected CR from lines
When the kernel log is acquired over a serial cable it is not uncommon for the log to contain carriage return characters, in addition to the expected line feeds. When this output is feed into decode_stacktrace.sh, handle_line() fails to strip the trailing ']' off the module name, which results in find_module() not being able to find the referred to kernel module. This is reported to the user as: WARNING! Modules path isn't set, but is needed to parse this symbol The solution is to reconfigure the serial port, or to strip the carriage returns from the log, but this isn't obvious from the error reported by the script. Instead, make decode_stacktrace.sh more user friendly by stripping the trailing carriage return. Link: https://lkml.kernel.org/r/20231225-decode-stacktrace-cr-v1-1-9f306f38cdde@quicinc.com Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-rwxr-xr-xscripts/decode_stacktrace.sh3
1 files changed, 3 insertions, 0 deletions
diff --git a/scripts/decode_stacktrace.sh b/scripts/decode_stacktrace.sh
index 564c5632e1a2..cb980b144ca1 100755
--- a/scripts/decode_stacktrace.sh
+++ b/scripts/decode_stacktrace.sh
@@ -291,6 +291,9 @@ handle_line() {
}
while read line; do
+ # Strip unexpected carriage return at end of line
+ line=${line%$'\r'}
+
# Let's see if we have an address in the line
if [[ $line =~ \[\<([^]]+)\>\] ]] ||
[[ $line =~ [^+\ ]+\+0x[0-9a-f]+/0x[0-9a-f]+ ]]; then