With lines having a code to decode, the alignment was not preserved for
the first line.
With this sample ...
[ 52.238089][ T55] RIP: 0010:__ip_queue_xmit+0x127c/0x1820
[ 52.238401][ T55] Code: c1 83 e0 07 48 c1 e9 03 83 c0 03 (...)
... the script was producing the following output:
[ 52.238089][ T55] RIP: 0010:__ip_queue_xmit (...)
[ 52.238401][ T55] Code: c1 83 e0 07 48 c1 e9 03 83 c0 03 (...)
That's because scripts/decodecode doesn't preserve the alignment. No
need to modify it, it is enough to give only the "Code: (...)" part to
this script, and print the prefix without modifications.
With the same sample, we now have:
[ 52.238089][ T55] RIP: 0010:__ip_queue_xmit (...)
[ 52.238401][ T55] Code: c1 83 e0 07 48 c1 e9 03 83 c0 03 (...)
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
scripts/decode_stacktrace.sh | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/scripts/decode_stacktrace.sh b/scripts/decode_stacktrace.sh
index 0c92d6a7f777e1b2d5452dd894a13a71e3d58051..c73cb802a0a3fc6559c5f53ff844e5cc6e433615 100755
--- a/scripts/decode_stacktrace.sh
+++ b/scripts/decode_stacktrace.sh
@@ -242,8 +242,10 @@ debuginfod_get_vmlinux() {
decode_code() {
local scripts=`dirname "${BASH_SOURCE[0]}"`
+ local lim="Code: "
- echo "$1" | $scripts/decodecode
+ echo -n "${1%%${lim}*}"
+ echo "${lim}${1##*${lim}}" | $scripts/decodecode
}
handle_line() {
--
2.51.0
On Mon, Sep 08, 2025 at 05:41:59PM +0200, Matthieu Baerts (NGI0) wrote:
> With lines having a code to decode, the alignment was not preserved for
> the first line.
>
> With this sample ...
>
> [ 52.238089][ T55] RIP: 0010:__ip_queue_xmit+0x127c/0x1820
> [ 52.238401][ T55] Code: c1 83 e0 07 48 c1 e9 03 83 c0 03 (...)
>
> ... the script was producing the following output:
>
> [ 52.238089][ T55] RIP: 0010:__ip_queue_xmit (...)
> [ 52.238401][ T55] Code: c1 83 e0 07 48 c1 e9 03 83 c0 03 (...)
>
> That's because scripts/decodecode doesn't preserve the alignment. No
> need to modify it, it is enough to give only the "Code: (...)" part to
> this script, and print the prefix without modifications.
>
> With the same sample, we now have:
>
> [ 52.238089][ T55] RIP: 0010:__ip_queue_xmit (...)
> [ 52.238401][ T55] Code: c1 83 e0 07 48 c1 e9 03 83 c0 03 (...)
>
> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
> ---
> scripts/decode_stacktrace.sh | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/decode_stacktrace.sh b/scripts/decode_stacktrace.sh
> index 0c92d6a7f777e1b2d5452dd894a13a71e3d58051..c73cb802a0a3fc6559c5f53ff844e5cc6e433615 100755
> --- a/scripts/decode_stacktrace.sh
> +++ b/scripts/decode_stacktrace.sh
> @@ -242,8 +242,10 @@ debuginfod_get_vmlinux() {
>
> decode_code() {
> local scripts=`dirname "${BASH_SOURCE[0]}"`
> + local lim="Code: "
>
> - echo "$1" | $scripts/decodecode
> + echo -n "${1%%${lim}*}"
> + echo "${lim}${1##*${lim}}" | $scripts/decodecode
> }
>
> handle_line() {
>
> --
> 2.51.0
>
This also worked for me. From this:
[ 143.815379][ T5218] kernel BUG at rust/helpers/bug.c:7!
[ 143.815970][ T5218] Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI
[...]
[ 143.842198][ T5218] RIP: 0010:rust_helper_BUG (rust/helpers/bug.c:7 (discriminator 4))
[ 143.842231][ T5218] Code: cc cc cc cc cc 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 b8 (...)
... to now:
[ 143.815379][ T5218] kernel BUG at rust/helpers/bug.c:7!
[ 143.815970][ T5218] Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI
[...]
[ 143.842198][ T5218] RIP: 0010:rust_helper_BUG (rust/helpers/bug.c:7 (discriminator 4))
[ 143.842231][ T5218] Code: cc cc cc cc cc 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 b8 (...)
Tested-by: Carlos Llamas <cmllamas@google.com>
© 2016 - 2026 Red Hat, Inc.