On Tue, Sep 30, 2025 at 2:18 AM Mikhail Zaslonko <zaslonko@linux.ibm.com> wrote:
Hi Lianbo,

It seems we have a problem printing disassembly blocks in the log after this patch (at least on s390).
See number of empty lines printed below.
 
Can you try it with the following two patches?
[1] https://www.mail-archive.com/devel@lists.crash-utility.osci.io/msg01621.html
[2] https://www.mail-archive.com/devel@lists.crash-utility.osci.io/msg01636.html


Before the patch:
  [   21.408784] Krnl GPRS: 000002aa3780c000 0000000000238c00 0000000015800000 0000000000001000
  [   21.408787]            0000000008e30000 00000000b0001000 0000000000000000 0000000000000a55
  [   21.408790]            0000000004c52300 000002aa3780c000 00000000084281d0 0000038000bfbd28
  [   21.408794]            00000000075e9500 0000000004c52300 0000038000bfbbf0 0000038000bfbb90
  [   21.408860] Krnl Code: 000000000e0acf48: c05fb0001000        llilf   %r5,2952794112
                            000000000e0acf4e: ec4100b30659        risbgn  %r4,%r1,0,179,6
                           #000000000e0acf54: 0e24                mvcl    %r2,%r4
                           >000000000e0acf56: a7280000            lhi     %r2,0
                            000000000e0acf5a: eb6ff0a80004        lmg     %r6,%r15,168(%r15)
                            000000000e0acf60: b9140022            lgfr    %r2,%r2
                            000000000e0acf64: 07fe                bcr     15,%r14
                            000000000e0acf66: 47000700            bc      0,1792
  [   21.408883] Call Trace:

After the patch:
  [   21.408784] Krnl GPRS: 000002aa3780c000 0000000000238c00 0000000015800000 0000000000001000
  [   21.408787]            0000000008e30000 00000000b0001000 0000000000000000 0000000000000a55
  [   21.408790]            0000000004c52300 000002aa3780c000 00000000084281d0 0000038000bfbd28
  [   21.408794]            00000000075e9500 0000000004c52300 0000038000bfbbf0 0000038000bfbb90
  [   21.408860]






                 Krnl Code: 000000000e0acf48: c05fb0001000        llilf   %r5,2952794112
  [   21.408883] Call Trace:

I think your approach of storing printable characters in the buffer with the intention to modify it
afterwards (see [1] below) instead of writing it character wise does not work when the input data
contains several lines. Those '\n' are written one by one, what leads to the result shown above.
You should probably buffer and 'demangle' each line separately.

Looks like different issues.  Can you share your vmcore and vmlinux with me? I did not reproduce it.

Thanks
Lianbo