----- Original Message ----- > Previously, calling raw_data_dump() with e.g. len 4 on 64bit systems > would dump 8 bytes anyway, making it hard to tell what one wants to see. > > For example, with task_struct.rt_priority a uint32. > before patch: > crash> struct -r task_struct.rt_priority ffff8d9b36186180 > ffff8d9b361861dc: 9741dec000000063 c.....A. > > after patch: > crash-patched> struct -r task_struct.rt_priority ffff8d9b36186180 > ffff8d9b361861dc: 00000063 c... > --- > > Here's the promised follow-up. > > Two remarks: > - I wasn't sure about an explicit DISPLAY_64 flag, but if we're 32bit > and want to print 8 bytes it is just as likely to be two entities than > a single one so it makes more sense to leave default to me. > - I wasn't sure on what to do if someone wants to print some odd size, > e.g. 6 bits? Should that be DISPLAY_8 anyway? > I tried on some bitmap and it looks like raw_data_dump is called with 8 > anyway even if the bitmap part is less than 8, I'm not sure this can > ever be called with weird values, so probably best left as is. Yes, let's do that -- queued for crash-7.2.9: https://github.com/crash-utility/crash/commit/8c28b5625505241d80ec5162f58ccc563e5e59f9 Thanks, Dave > Thanks! > > memory.c | 19 ++++++++++++++++++- > 1 file changed, 18 insertions(+), 1 deletion(-) > > diff --git a/memory.c b/memory.c > index 4f7b6a0..ccc2944 100644 > --- a/memory.c > +++ b/memory.c > @@ -2113,6 +2113,7 @@ raw_data_dump(ulong addr, long count, int symbolic) > long wordcnt; > ulonglong address; > int memtype; > + ulong flags = HEXADECIMAL; > > switch (sizeof(long)) > { > @@ -2132,6 +2133,22 @@ raw_data_dump(ulong addr, long count, int symbolic) > break; > } > > + switch (count) > + { > + case SIZEOF_8BIT: > + flags |= DISPLAY_8; > + break; > + case SIZEOF_16BIT: > + flags |= DISPLAY_16; > + break; > + case SIZEOF_32BIT: > + flags |= DISPLAY_32; > + break; > + default: > + flags |= DISPLAY_DEFAULT; > + break; > + } > + > if (pc->curcmd_flags & MEMTYPE_FILEADDR) { > address = pc->curcmd_private; > memtype = FILEADDR; > @@ -2144,7 +2161,7 @@ raw_data_dump(ulong addr, long count, int symbolic) > } > > display_memory(address, wordcnt, > - HEXADECIMAL|DISPLAY_DEFAULT|(symbolic ? SYMBOLIC : ASCII_ENDLINE), > + flags|(symbolic ? SYMBOLIC : ASCII_ENDLINE), > memtype, NULL); > } > > -- > 2.26.0 > > > -- > Crash-utility mailing list > Crash-utility@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/crash-utility > -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility