[Crash-utility] [PATCH] s390: Fix printing of control and floating point registers

Dave Anderson anderson at redhat.com
Thu Sep 15 16:21:02 UTC 2011



----- Original Message -----
> Hello Dave,
> 
> On Thu, 2011-09-15 at 11:24 -0400, Dave Anderson wrote:
> > Hi Michael,
> >
> > The "ULONG(ptr + 8)" below doesn't seem right:
> 
> You are right of course, thanks! At least I did the error
> consistently :-)
> 
> >
> > > --- a/s390.c
> > > +++ b/s390.c
> > > @@ -861,16 +861,16 @@ s390_print_lowcore(char* lc, struct bt_i
> > > fprintf(fp," %#010lx %#010lx %#010lx %#010lx\n",
> > > tmp[0], tmp[1], tmp[2], tmp[3]);
> > >
> > > - tmp[0]=ULONG(ptr);
> > > - tmp[1]=ULONG(ptr + S390_WORD_SIZE);
> > > - tmp[2]=ULONG(ptr + 2 * S390_WORD_SIZE);
> > > - tmp[3]=ULONG(ptr + 3 * S390_WORD_SIZE);
> > > + tmp[0]=ULONG(ptr + 8);
> 
> Should be tmp[0]=ULONG(ptr + 8 * S390_WORD_SIZE);
> 
> > > + tmp[1]=ULONG(ptr + 9 * S390_WORD_SIZE);
> > > + tmp[2]=ULONG(ptr + 10 * S390_WORD_SIZE);
> > > + tmp[3]=ULONG(ptr + 11 * S390_WORD_SIZE);
> >
> > And here as well:
> >
> > > --- a/s390x.c
> > > +++ b/s390x.c
> > > @@ -1184,16 +1184,16 @@ s390x_print_lowcore(char* lc, struct bt_
> > > tmp[3]=ULONG(ptr + 7 * S390X_WORD_SIZE);
> > > fprintf(fp," %#018lx %#018lx\n", tmp[0],tmp[1]);
> > > fprintf(fp," %#018lx %#018lx\n", tmp[2],tmp[3]);
> > > - tmp[0]=ULONG(ptr);
> > > - tmp[1]=ULONG(ptr + S390X_WORD_SIZE);
> > > - tmp[2]=ULONG(ptr + 2 * S390X_WORD_SIZE);
> > > - tmp[3]=ULONG(ptr + 3 * S390X_WORD_SIZE);
> > > + tmp[0]=ULONG(ptr + 8);
> 
> And tmp[0]=ULONG(ptr + 8 * S390X_WORD_SIZE);
> 
> > > + tmp[1]=ULONG(ptr + 9 * S390X_WORD_SIZE);
> > > + tmp[2]=ULONG(ptr + 10 * S390X_WORD_SIZE);
> > > + tmp[3]=ULONG(ptr + 11 * S390X_WORD_SIZE);
> >
> > Shouldn't they both be:
> >
> >   tmp[0]=ULONG(ptr + 8 * S390_WORD_SIZE);
> 
> Yes, but S390X_WORD_SIZE for s390x.
> 
> Could you change that?

Yep -- queued for crash-5.1.8

Thanks,
  Dave




More information about the Crash-utility mailing list