procfs.c thinks pid's can't be bigger than 99999
Kevin Buettner
kevinb@cygnus.com
Mon Jul 2 13:43:00 GMT 2001
On Jul 2, 11:56am, Michael Snyder wrote:
> John Hughes wrote:
> >
> > but on some systems, for example UnixWare NSC they
> > can be quite a lot bigger.
> >
> > --- procfs.c.orig Tue May 15 02:03:36 2001
> > +++ procfs.c Mon Jul 2 14:40:05 2001
> > @@ -295,7 +295,7 @@
> > # define AS_PROC_NAME_FMT "/proc/%d/as"
> > # define MAP_PROC_NAME_FMT "/proc/%d/map"
> > # define STATUS_PROC_NAME_FMT "/proc/%d/status"
> > -# define MAX_PROC_NAME_SIZE sizeof("/proc/99999/lwp/8096/lstatus")
> > +# define MAX_PROC_NAME_SIZE sizeof("/proc/1048576/lwp/8096/lstatus")
> > # endif
> > /* the name of the proc status struct depends on the implementation */
> > typedef pstatus_t gdb_prstatus_t;
>
> Well, actually, aren't we going to run into trouble if
> pids are bigger than 16 bits? Or did Kevin Buettner's
> recent changes take care of that?
My recent changes took care of that.
> Other than that, I have no problem with this change.
I think John's change is a step in the right direction, but the name
is still not large enough. In AIX 5, the pids and tids seem to be
able to occupy all of 32 bits. Therefore, I propose that we use
the following:
#define MAX_PROC_NAME_SIZE sizeof("/proc/1234567890/lwp/1234567890/lstatus")
Note that 2^32-1 is 4294967295 which requires ten digits. Using
"1234567890" makes it obvious that ten digits are needed.
Kevin
More information about the Gdb-patches
mailing list