Hello Waylando,
Not sure what your problem is. I have sent the patch to the crash
maintainer Dave Anderson and the crash mailing list.
Anything wrong with this (besides that my first patch was not correct)?
Michael
On Thu, 2011-09-15 at 09:07 -0700, Waylando Mack wrote:
this isn't dave and stop sending these emails
From: Dave Anderson <anderson(a)redhat.com>
To: holzheu(a)linux.vnet.ibm.com
Cc: crash <crash-utility(a)redhat.com>
Sent: Thursday, September 15, 2011 8:24 AM
Subject: Re: [Crash-utility] [PATCH] s390: Fix printing of control and
floating point registers
----- 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(a)linux.vnet.ibm.com>
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(a)redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility
--
Crash-utility mailing list
Crash-utility(a)redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility