diff options
-rw-r--r-- | examples/ChangeLog | 5 | ||||
-rw-r--r-- | examples/procmap.c | 39 |
2 files changed, 39 insertions, 5 deletions
diff --git a/examples/ChangeLog b/examples/ChangeLog index 0ec9dfee..057a9465 100644 --- a/examples/ChangeLog +++ b/examples/ChangeLog @@ -1,3 +1,8 @@ +1998-08-18 Martin Baulig <martin@home-of-linux.org> + + * procmap.c: We now display filenames when compiled + `--with-libgtop-inodedb'. + 1998-08-12 Martin Baulig <martin@home-of-linux.org> * second.c: Works a little bit more like `ps' - you can diff --git a/examples/procmap.c b/examples/procmap.c index 0be8ebc6..74b21d9f 100644 --- a/examples/procmap.c +++ b/examples/procmap.c @@ -30,6 +30,10 @@ #include <glibtop/procmap.h> +#ifdef GLIBTOP_INODEDB +#include <glibtop/inodedb.h> +#endif + #include <sys/resource.h> #include <sys/mman.h> @@ -40,6 +44,9 @@ int main (int argc, char *argv []) { +#ifdef GLIBTOP_INODEDB + glibtop_inodedb *inodedb; +#endif glibtop_proc_map procmap; glibtop_map_entry *maps; unsigned method, count, port, i, *ptr; @@ -75,16 +82,38 @@ main (int argc, char *argv []) if ((argc != 2) || (sscanf (argv [1], "%d", &pid) != 1)) glibtop_error ("Usage: %s pid", argv [0]); +#ifdef GLIBTOP_INODEDB + inodedb = glibtop_inodedb_open (0, 0); +#endif + fprintf (stderr, "Getting memory maps for pid %d.\n\n", pid); maps = glibtop_get_proc_map (&procmap, pid); for (i = 0; i < procmap.number; i++) { - fprintf (stderr, "%08x - %08x - %08lu - %08lu\n", - (unsigned long) maps [i].start, - (unsigned long) maps [i].end, - (unsigned long) maps [i].device, - (unsigned long) maps [i].inode); + const char *filename = NULL; + +#ifdef GLIBTOP_INODEDB + if (inodedb) + filename = glibtop_inodedb_lookup + (inodedb, maps [i].device, maps [i].inode); +#endif + + if (filename) + fprintf (stderr, "%08x - %08x - %08lu - %08lu - %s\n", + (unsigned long) maps [i].start, + (unsigned long) maps [i].end, + (unsigned long) maps [i].device, + (unsigned long) maps [i].inode, + filename); + else + fprintf (stderr, "%08x - %08x - %08lu - %08lu\n", + (unsigned long) maps [i].start, + (unsigned long) maps [i].end, + (unsigned long) maps [i].device, + (unsigned long) maps [i].inode); + + glibtop_free (filename); } glibtop_free (maps); |