This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: Unixware gdb/procfs.c patch - v3
- From: Michael Snyder <msnyder at redhat dot com>
- To: rbrown64 at csc dot com dot au
- Cc: gdb-patches at sources dot redhat dot com
- Date: Thu, 17 Jan 2002 17:42:42 -0800
- Subject: Re: Unixware gdb/procfs.c patch - v3
- Organization: Red Hat, Inc.
- References: <OFB2B67E40.BE12B87A-ONCA256B45.00064544@int.csc.com.au>
rbrown64@csc.com.au wrote:
>
> procfs.c hides the particular type of process status structure in
> the gdb_prstatus_t typedef. Push this information hiding into
> bfd/elf.c(elfcore_write_gdb_prstatus) exporting one interface.
>
> No regressions on UnixWare 7.1.0 and Solaris 2.7 with this and the
> matching bfd/elf.c patch.
Rodney, this merely exports the ugliness from procfs.c into bfd.
I would strongly prefer not to do that. Is there a reason why
you don't want to do this the way I suggested (by using an
ifdef NEW_PROC_API)? That is the single macro that is used
to select between the two /proc API's in the whole procfs module.
>
> 2001-01-18 Rodney Brown <rbrown64@csc.com.au>
> * procfs.c: Prototype elfcore_write_gdb_prstatus,
> elfcore_write_prfpreg, elfcore_write_prpsinfo.
> (procfs_do_thread_registers): Call elfcore_write_gdb_prstatus.
>
> --- procfs.c.orig Tue Jan 15 15:01:48 2002
> --- procfs.c.orig Tue Jan 15 15:01:48 2002
> +++ procfs.c Thu Jan 17 16:59:00 2002
> @@ -55,7 +55,7 @@ Inc., 59 Temple Place - Suite 330, Bosto
> * Unixware
> * AIX5
> *
> - * /proc works by immitating a file system: you open a simulated file
> + * /proc works by imitating a file system: you open a simulated file
> * that represents the process you wish to interact with, and
> * perform operations on that "file" in order to examine or change
> * the state of the other process.
> @@ -325,6 +325,10 @@ typedef prstatus_t gdb_prstatus_t;
> typedef prstatus_t gdb_lwpstatus_t;
> #endif /* NEW_PROC_API */
>
> +char *elfcore_write_gdb_prstatus (bfd *, char *, int *, long, int, void *);
> +char *elfcore_write_prfpreg (bfd *, char *, int *, void *, int);
> +char *elfcore_write_prpsinfo (bfd *, char *, int *, char *, char *);
> +
> typedef struct procinfo {
> struct procinfo *next;
> int pid; /* Process ID */
> @@ -5733,12 +5737,12 @@ procfs_do_thread_registers (bfd *obfd, p
> merged_pid = TIDGET (ptid) << 16 | PIDGET (ptid);
>
> fill_gregset (&gregs, -1);
> - note_data = (char *) elfcore_write_prstatus (obfd,
> - note_data,
> - note_size,
> - merged_pid,
> - stop_signal,
> - &gregs);
> + note_data = (char *) elfcore_write_gdb_prstatus (obfd,
> + note_data,
> + note_size,
> + merged_pid,
> + stop_signal,
> + &gregs);
> fill_fpregset (&fpregs, -1);
> note_data = (char *) elfcore_write_prfpreg (obfd,
> note_data,