Date: Thu, 21 Feb 2002 14:04:40 +0800 From: "David Xu" <davidx@viasoft.com.cn> To: "Haryadi Gunawi" <haryadi@cs.wisc.edu>, <freebsd-questions@FreeBSD.ORG> Subject: Re: /proc/pid/map (freeBSD vs Linux) Message-ID: <011501c1ba9d$a6af9080$ef01a8c0@davidwnt> References: <Pine.GSO.4.21.0202202326210.16631-100000@nova11.cs.wisc.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
----- Original Message -----=20
From: "Haryadi Gunawi" <haryadi@cs.wisc.edu>
To: <freebsd-questions@FreeBSD.ORG>
Sent: Thursday, February 21, 2002 1:42 PM
Subject: /proc/pid/map (freeBSD vs Linux)
>=20
> > From: Roman Neuhauser <neuhauser@mobil.cz>
> > Subject: Re: /proc/pid/map (freeBSD vs Linux)
> > Message-ID: <20020220142036.GL418@roman.mobil.cz>
>=20
> > I don't know if this is what you're looking for, but ldd(1) might
> > help(?).
>=20
> --=20
>=20
> Thanks for the answer,
> ldd is not really what I'm looking for.
>=20
> Here is my project in detail.
> - I have a PID (from getpid)
> - Then I want to look what program has that PID (by looking at the
> /proc/pid/map)
> - next I must know what libraries are utilized, and their text =
segments
> (where the code are allocated)
>=20
> So looking at the /proc/pid/map (just the text segments,
> identified by 'r-x' mode):
>=20
> In FreeBSD:
> 0x8048000 0x8049000 1 0 0xc8776d20 r-x 2 0 0x0 COW NC vnode
> 0x28049000 0x2805a000 12 0 0xc03f9f80 r-x 73 34 0x0 COW NC vnode
> 0x28065000 0x280e5000 57 0 0xc03fad60 r-x 73 34 0x0 COW NC vnode
>=20
> In Linux:
> 8048000-08049000 r-xp 00000000 03:08 22408 =
/rdata/src/test/loop/a.out
> 40000000-40016000 r-xp 00000000 03:08 44178 /lib/ld-2.1.92.so
> 40022000-4013d000 r-xp 00000000 03:08 44185 /lib/libc-2.1.92.so
>=20
> I know the first one is the executable itself, the 2nd one should be =
the
> dynamic linker, and the third one is the C library. The first and 2nd
> column are the starting and ending text/code segment.
>=20
> Now the problem is:=20
> I don't know what is the executable name, and the
> libraries utilized from /proc/pid/map in FreeBSD.=20
> In Linux I can easily get them from the last column.
> Where can I get those names in FreeBSD?
>=20
> I assume the numbers in the third column (1, 12, 57) mean something, =
but
> I don't know what they are.
>=20
>=20
> Thank you very much,
> appreciate your time,
> hg
>=20
In fstat(1) manual has following sentences:
Normally the name cannot be determined since there is no
mapping from an open file back to the directory entry that =
was
used to open that file. Also, since different directory =
entries
may reference the same file (via ln(1)), the name printed =
may not
be the actual name that the process originally used to open =
that
file.
I know Linux proc fs support the feature. but I have never seen a =
program=20
under FreeBSD can map a fd to path name.
--
David Xu
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?011501c1ba9d$a6af9080$ef01a8c0>
