--- files/patch-sysdeps_freebsd_procmap.c (revision 520143) +++ files/patch-sysdeps_freebsd_procmap.c (working copy) @@ -1,5 +1,5 @@ ---- sysdeps/freebsd/procmap.c.orig 2015-08-17 18:59:37 UTC -+++ sysdeps/freebsd/procmap.c +--- sysdeps/freebsd/procmap.c.orig 2017-08-07 18:43:41.000000000 -0400 ++++ sysdeps/freebsd/procmap.c 2019-12-10 09:04:59.238100000 -0500 @@ -52,6 +52,8 @@ #include #include @@ -9,7 +9,7 @@ #include #if (__FreeBSD_version >= 600006) || defined(__FreeBSD_kernel__) #include -@@ -86,6 +88,8 @@ _glibtop_sysdeps_freebsd_dev_inode (glib +@@ -95,6 +97,8 @@ struct cdev_priv priv; #if __FreeBSD_version < 800039 struct cdev si; @@ -18,9 +18,9 @@ #endif *inum = 0; -@@ -167,7 +171,9 @@ _glibtop_sysdeps_freebsd_dev_inode (glib +@@ -202,7 +206,9 @@ - + #else /* older versions */ #if (__FreeBSD_version >= 800039) || (__FreeBSD_kernel_version >= 800039) - if (kvm_read (server->machine->kd, (gulong) cdev2priv(inode.i_dev), (char *) &priv, + if (kvm_read (server->machine->kd, (gulong) inode.i_ump, (char *) &um, @@ -29,3 +29,34 @@ sizeof (priv)) #else if (kvm_read (server->machine->kd, (gulong) inode.i_dev, (char *) &si, +@@ -273,10 +279,10 @@ + return NULL; + } + +- first = vmspace.vm_map.header.next; ++ first = vmspace.vm_map.header.right; + + if (kvm_read (server->machine->kd, +- (gulong) vmspace.vm_map.header.next, ++ (gulong) vmspace.vm_map.header.right, + (char *) &entry, sizeof (entry)) != sizeof (entry)) { + glibtop_warn_io_r (server, "kvm_read (entry)"); + glibtop_suid_leave (server); +@@ -299,7 +305,7 @@ + + if (update) { + if (kvm_read (server->machine->kd, +- (gulong) entry.next, ++ (gulong) entry.right, + (char *) &entry, sizeof (entry)) != sizeof (entry)) { + glibtop_warn_io_r (server, "kvm_read (entry)"); + continue; +@@ -377,7 +383,7 @@ + if (entry.protection & VM_PROT_EXECUTE) + mentry->perm |= GLIBTOP_MAP_PERM_EXECUTE; + +- } while (entry.next != first); ++ } while (entry.right != first); + + glibtop_suid_leave (server); +