From: Yong Zheng <zhengyo@cn.ibm.com>
To: Phil Muldoon <pmuldoon@redhat.com>
Cc: Frysk Hackers <frysk@sourceware.org>
Subject: Re: PPC64 core-file GP register formats/order
Date: Mon, 23 Oct 2006 03:54:00 -0000 [thread overview]
Message-ID: <1161575543.2742.26.camel@YZ_X86_64> (raw)
In-Reply-To: <453C1D1F.1090704@redhat.com>
On Sun, 2006-10-22 at 20:38 -0500, Phil Muldoon wrote:
> I'm not sure what to do, but I cannot find the expectations of register
> order in a core file for PPC64. On other architectures the order is
> defined in:
>
> struct user_regs_struct
> {..structure defined here...}
>
> in /usr/include/asm/user.h
>
> in x86, and on x86_64:
>
> asm-i386/ asm-x86_64/
>
> Depending on how that box is configured.
>
> The only contents of user.h on a PPC64 box in Toronto contains:
>
> #ifndef _ASM_POWERPC_USER_H
> #define _ASM_POWERPC_USER_H
> #endif /* _ASM_POWERPC_USER_H */
>
IMO, the PRSTATUS data struct is defined by the struct elf_prstatus in
<linux/elfcore.h>, right?(I think it's right, you know kernel dumps core
file according <linux/elfcore.h>, so we should take the same struct as
kernel does). Then the attribute "elf_gregset_t pr_reg" is referred in
the struct elf_prstatus.
On x86/x86_64, the "elf_gregset_t pr_reg" is defined by the struct
"struct user_regs_struct" in <asm-i386/user.h> or <asm-x86_64/user.h>.
We should dump out the registers according to the "struct
user_regs_struct". This is ok, you must have done this. :-)
Unfortunately in the <asm-ppc64/user.h> on PPC64, no one struct like
"struct user_regs_struct" is defined. So this will bring us some
troubles when dumping.
Let go back to read the <linux/elfcore.h>. On PPC/PPC64, the struct
"elf_gregset_t" is defined as one unsigned long array with the size of
48 in <asm-ppc64/elf.h> or <asm-ppc/elf.h>. And about each member in the
array is defined in <asm-ppc/ptrace.h> or <asm-ppc64/ptrace.h>, for
example, the array[0] is the NO.0 general purpose register(i.e. gpr0). I
think we should take this order to dump out the attribute "elf_gregset_t
pr_reg" of PRSTATUS.
Now the question becomes how to get the above 48 registers' value on
PPC64. (I'm not sure how you get the similar value on X86/X86_64. We
guess you get them by getRegisterBankBuffers() in ISA.java. :-)). If you
get them by getRegisterBankBuffers() in ISA.java, it will more easier
for us to get the same registerBankBuffer on PPC64.So, if the code works
well on X86/X86_64, please check them in. And we will do some
modifications for PPC64.
> I tried to backward engineer the order with gcore and kernel on ppc64,
> but both of those either do not write notes, or eu-readelf cannot
> understand them as the output is:
>
> Note segment of 2060 bytes at offset 0x2b4:
> Owner Data size Type
> CORE 268 PRSTATUS
> CORE 128 PRPSINFO
>
> That is basically no note data at all (or that can be understood).
>
I do one test for kernel' core dump file on PPC64. THe tool "en-readelf" cannot
recogonize the PRSTATUS's detailed information, it just shows some general info like the above.
I think this may be the bug in en-readelf on PPC64.
Best regards
Yong Zheng
next prev parent reply other threads:[~2006-10-23 3:54 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-23 1:38 Phil Muldoon
2006-10-23 3:54 ` Yong Zheng [this message]
2006-10-23 4:15 ` Phil Muldoon
2006-10-23 12:41 ` Compiling failed for ElfPrstatus.cxx file on x86-64 Yong Zheng
2006-10-23 13:14 ` Phil Muldoon
2006-10-23 6:19 ` PPC64 core-file GP register formats/order Roland McGrath
2006-10-23 8:51 ` Wu Zhou
2006-10-23 9:42 ` Roland McGrath
2006-10-23 13:53 ` Phil Muldoon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1161575543.2742.26.camel@YZ_X86_64 \
--to=zhengyo@cn.ibm.com \
--cc=frysk@sourceware.org \
--cc=pmuldoon@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).