----- Original Message ----- > Hi Dave, > > Control registers 8-15 (s390x and s390) and floating point registers 8-15 > (s390x only) are not printed correctly because the we copy the content from > the wrong location of the save area. > > Looks like nobody has realized this problem in the past because those > registers are not too important for debugging kernel problems... > > This patch fixes this problem and now control and floating point registers > are printed correctly. > > Signed-off-by: Michael Holzheu <holzheu@xxxxxxxxxxxxxxxxxx> Hi Michael, The "ULONG(ptr + 8)" below doesn't seem right: > --- 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); > + 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); > + 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); Dave -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility