This is the mail archive of the frysk@sourceware.org mailing list for the frysk project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Make CoredumpAction use Task.getRegisterBanks()


Mark Wielaard wrote:

Thanks. So this seems slightly different from how we do things with ptrace/proc where we can have multiple different register banks (for floating point, extended floating point and control/debug registers). We might be able to always just use the USR address space to get at all of those together in one go (I don't actually know why we don't do that, or why ptrace provides different ways to access the same register sets).


Apologies for the delay in replying.


For the FP and fpxregs (which I am writing code for right now), I just take the entire register buffer and dump it wholesale into the appropriate note in the core file. For GP registers there are some cross-isa issues (mainly in PPC) that require the code to pick them individually, sort them into order, them populate them as part of another note, the elf_prstatus note. This is an important distinction as GP registers do not have their own separate note area in core files, but are part of the thread elf_prstatus note. That is why both raw memory banks, and getRegisterByName are needed.

If we can match up the raw memory for each register bank between
ptrace/proc and core files from Task that would be ideal. Then the Isa
can just do the getRegisterByName() mapping. I'll watch your rewrite of
the core file stuff and see if this makes things easier and clearer (I
guess it will).

The two requirements needed for core files are:


1) Access to the raw memory behind the register via a ByteBuffer
2) Access to a logical method of getting registers by name, like getRegisterByName()


Regards

Phil


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]