diff options
| author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2022-12-12 10:47:03 -0800 |
|---|---|---|
| committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2022-12-12 10:47:03 -0800 |
| commit | e291c116f60f3c1ca98090f0f8e7c77e658562fb (patch) | |
| tree | 2fbe810f2a6f8b29f1cdaefd87b24debbfa0ec07 /scripts/decode_stacktrace.sh | |
| parent | 8c9a59939deb4bfafdc451100c03d1e848b4169b (diff) | |
| parent | c3991107a28a5ad0bd90660ca3bbf8c2c220ea98 (diff) | |
| download | linux-e291c116f60f3c1ca98090f0f8e7c77e658562fb.tar.gz linux-e291c116f60f3c1ca98090f0f8e7c77e658562fb.zip | |
Merge branch 'next' into for-linus
Prepare input updates for 6.2 merge window.
Diffstat (limited to 'scripts/decode_stacktrace.sh')
| -rwxr-xr-x | scripts/decode_stacktrace.sh | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/scripts/decode_stacktrace.sh b/scripts/decode_stacktrace.sh index 7075e26ab2c4..564c5632e1a2 100755 --- a/scripts/decode_stacktrace.sh +++ b/scripts/decode_stacktrace.sh @@ -8,6 +8,14 @@ usage() { echo " $0 -r <release> | <vmlinux> [<base path>|auto] [<modules path>]" } +# Try to find a Rust demangler +if type llvm-cxxfilt >/dev/null 2>&1 ; then + cppfilt=llvm-cxxfilt +elif type c++filt >/dev/null 2>&1 ; then + cppfilt=c++filt + cppfilt_opts=-i +fi + if [[ $1 == "-r" ]] ; then vmlinux="" basepath="auto" @@ -180,6 +188,12 @@ parse_symbol() { # In the case of inlines, move everything to same line code=${code//$'\n'/' '} + # Demangle if the name looks like a Rust symbol and if + # we got a Rust demangler + if [[ $name =~ ^_R && $cppfilt != "" ]] ; then + name=$("$cppfilt" "$cppfilt_opts" "$name") + fi + # Replace old address with pretty line numbers symbol="$segment$name ($code)" } |
