summaryrefslogtreecommitdiff
path: root/scripts/decode_stacktrace.sh
diff options
context:
space:
mode:
authorJani Nikula <jani.nikula@intel.com>2025-02-05 20:12:37 +0300
committerJani Nikula <jani.nikula@intel.com>2025-02-05 20:12:37 +0300
commitea9f8f2b21795a5d80418a655bcb212d5b89e08f (patch)
tree16190fb8cb798e7643667784b5a85f60de1f755e /scripts/decode_stacktrace.sh
parentbdcdb913c2d36447ea49d33774e5d6093c55d6f7 (diff)
parent2014c95afecee3e76ca4a56956a936e23283f05b (diff)
downloadlinux-ea9f8f2b21795a5d80418a655bcb212d5b89e08f.tar.xz
Merge drm/drm-next into drm-intel-next
Sync with v6.14-rc1. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Diffstat (limited to 'scripts/decode_stacktrace.sh')
-rwxr-xr-xscripts/decode_stacktrace.sh16
1 files changed, 14 insertions, 2 deletions
diff --git a/scripts/decode_stacktrace.sh b/scripts/decode_stacktrace.sh
index 46fa18b80fc1..17abc4e7a985 100755
--- a/scripts/decode_stacktrace.sh
+++ b/scripts/decode_stacktrace.sh
@@ -286,6 +286,18 @@ handle_line() {
last=$(( $last - 1 ))
fi
+ # Extract info after the symbol if present. E.g.:
+ # func_name+0x54/0x80 (P)
+ # ^^^
+ # The regex assumes only uppercase letters will be used. To be
+ # extended if needed.
+ local info_str=""
+ if [[ ${words[$last]} =~ \([A-Z]*\) ]]; then
+ info_str=${words[$last]}
+ unset words[$last]
+ last=$(( $last - 1 ))
+ fi
+
if [[ ${words[$last]} =~ \[([^]]+)\] ]]; then
module=${words[$last]}
# some traces format is "(%pS)", which like "(foo+0x0/0x1 [bar])"
@@ -313,9 +325,9 @@ handle_line() {
# Add up the line number to the symbol
if [[ -z ${module} ]]
then
- echo "${words[@]}" "$symbol"
+ echo "${words[@]}" "$symbol ${info_str}"
else
- echo "${words[@]}" "$symbol $module"
+ echo "${words[@]}" "$symbol $module ${info_str}"
fi
}