Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Nov 2011 19:48:09 +0200
From:      Kostik Belousov <kostikbel@gmail.com>
To:        Mikolaj Golub <trociny@freebsd.org>
Cc:        svn-src-head@freebsd.org, mdf@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Robert Watson <rwatson@freebsd.org>
Subject:   Re: svn commit: r227873 - head/usr.bin/procstat
Message-ID:  <20111126174808.GK50300@deviant.kiev.zoral.com.ua>
In-Reply-To: <86vcq6n8bu.fsf@kopusha.home.net>
References:  <201111230734.pAN7YA78032998@svn.freebsd.org> <CAMBSHm9=kToWP8kmc5YqfMeAC%2BeX_677MPsVK5cqrNaHekSctA@mail.gmail.com> <86ipmaq9i4.fsf@in138.ua3> <86vcq6n8bu.fsf@kopusha.home.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--xrgBBsHnjfjm6j0J
Content-Type: text/plain; charset=koi8-r
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sat, Nov 26, 2011 at 06:43:01PM +0200, Mikolaj Golub wrote:
>=20
> On Thu, 24 Nov 2011 09:12:35 +0200 Mikolaj Golub wrote:
>=20
>  MG> On Wed, 23 Nov 2011 11:10:47 -0800 mdf@FreeBSD.org wrote:
>=20
>  >>> =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9Aprintf(" AT_IGNORE=3D=
0x%lu",
>  >>> - =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A (unsigned long=
)aux->a_un.a_val);
>  >>> + =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A (unsigned long=
)auxv[i].a_un.a_val);
>=20
>  m>> I didn't see this before, but this gives very misleading output.  The
>  m>> 0x prefix implies the output will be hex, but it's printed as decima=
l,
>  m>> here and below.
>=20
>  MG> Oh. Thanks! Will fix.
>=20
>  m>> I don't know if there's a style preference for 0x%lx versus %#lx,
>  m>> though, or a preference for a different type for the print (uintmax_=
t,
>  m>> for example).  There is probably a preference for using u_long rather
>  m>> than unsigned long, since it's shorter.
>=20
>  MG> It looks like both 0x%lx and %#lx are widely spread in our source, I=
 like %#lx
>  MG> a little more. It looks for me that (u_long) will be ok for now, so =
the chage
>  MG> for the printf above would be:
>=20
>  MG> printf(" AT_IGNORE=3D%#lx", (u_long)auxv[i].a_un.a_val);
>=20
>  MG> Anyway, printing all values in the same format was considered by me =
as a
>  MG> temporary solution. I am going to have format depending on a_type, s=
o e.g.
>  MG> AT_PAGESZ will be 4096, not 0x1000.
>=20
>  MG> Also, now they are printed as one string for a process:
>=20
>  MG>   PID COMM             AUXV
>  MG>  2520 firefox-bin      AT_PHDR=3D0x400040 AT_PHENT=3D0x38 AT_PHNUM=
=3D0x7 AT_PAGESZ=3D0x1000 ...
>=20
>  MG> I am considering changing this too, to something like below:
>=20
>  MG>   PID COMM             AUXV        VALUE
>  MG>  2520 firefox-bin      AT_PHDR     0x400040
>  MG>  2520 firefox-bin      AT_PHENT    56
>  MG>  2520 firefox-bin      AT_PHNUM    7
>  MG> ...
>=20
> I am going to commit this patch if nobody has any other suggestions.
>=20
> The typical output:
>=20
> in138:~% procstat -x 2008
>   PID COMM             AUXV             VALUE          =20
>  2008 nginx            AT_PHDR          0x400040
>  2008 nginx            AT_PHENT         56
>  2008 nginx            AT_PHNUM         8
>  2008 nginx            AT_PAGESZ        4096
>  2008 nginx            AT_FLAGS         0
>  2008 nginx            AT_ENTRY         0x40de00
>  2008 nginx            AT_BASE          0x800689000
>  2008 nginx            AT_EXECPATH      0x7fffffffefca
>  2008 nginx            AT_OSRELDATE     1000001
>  2008 nginx            AT_CANARY        0x7fffffffef8a
>  2008 nginx            AT_CANARYLEN     64
>  2008 nginx            AT_NCPUS         2
>  2008 nginx            AT_PAGESIZES     0x7fffffffef72
>  2008 nginx            AT_PAGESIZESLEN  24
>  2008 nginx            AT_STACKPROT     VM_PROT_ALL
I like this output much better. The only thing I am unsure of is
the pretty-printing of AT_STACKPROT. Might be, change it to
EXECUTABLE/NONEXECUTABLE printout.

--xrgBBsHnjfjm6j0J
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (FreeBSD)

iEYEARECAAYFAk7RJlgACgkQC3+MBN1Mb4jG9gCfRyJ3b8bqX3aCVCkv+tFJ9d4z
L1IAnjxRsxeFT8FwxSJjGcBBT/s6e7kK
=aB77
-----END PGP SIGNATURE-----

--xrgBBsHnjfjm6j0J--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20111126174808.GK50300>