cvs commit: src/sys/kern imgact_elf.c

Scott Long scottl at freebsd.org
Tue Jul 20 03:33:37 PDT 2004


On Tue, 20 Jul 2004, Mark Kettenis wrote:
>    Date: Mon, 19 Jul 2004 10:10:41 -0700
>    From: Marcel Moolenaar <marcel at xcllnt.net>
>
>    On Mon, Jul 19, 2004 at 03:45:39AM -0600, Scott Long wrote:
>    > I've seen concern (maybe in private email, can't check at the moment)
>    > recently that loosing the PID info is undesirable.  Is there any way that
>    > it can be included again, maybe in something other than a PRSTATUS object?
>
>    Ideally you want one note that describes the process as a whole (let's
>    call it a P-note for now) and as many notes as there were kernel threads
>    for the process (let's call such notes T-notes).
>
> Defenitely.
>
>    A P-note would typically hold the PID. T-notes typically hold register
>    contents, as well as LWPIDs.
>
> Essentially, yes.
>
>    Creating a core file with P-notes and T-notes is easy enough. getting
>    binutils to grok them is non-trivial, not to mention that gdb needs
>    to be able to get to the information, which is as non-trivial as
>    binutils extracting it from the core file. So, introducing new notes
>    is a major effort. Extending existing notes is a major effort. Not
>    because it's hard to understand a new note, or read a new field from
>    a note, but because it's hard to have binutils save the information
>    and gdb use the saved information. You pretty much have to redesign
>    interfaces and I'm not touching that...
>
> I think a redesign of the core file format along the lines you said
> above would defenitely pay off.  The NetBSD folks have done it, and I
> think their approach is pretty elegant.  An improtant benefit of their
> approach is that it's (almost) machine independent.  The BFD code is
> pretty much localized in elf.c (look for the functions with netbsd in
> their names).  Adapting that code for FreeNSD should not be much work.
> I don't think any further changes to GDB are needed.
>
> For a description of the format you can look at the NetBSD core(5) man
> page.  The T-notes are simply dumps of `struct reg' and `struct
> fpreg'.  The LWPIDs are encoded in the name of those notes.
>
> Please realize that the problems you're citing largely stem from the
> let's simulate-Linux-which-simulates-SVR4 type notes currently used by
> FreeBSD.  Throwing that all overboard will save much trouble in the
> future.
>
> I'm certainly willing to do some of the legwork, since it'd make life
> for me on the GDB side a lot easier if you'd adapt these NetBSD-style
> core file notes.  I certainly have some time the coming weeks to spend
> on it.
>
> Mark
>

I think it's a little late in the 5.3/5-STABLE game to change the corefile
format.  I do, however, like this idea a lot.  Getting it done early on in
the 6.x cycles would be a really good thing.

Scott


More information about the cvs-src mailing list