diff options
author | Vito Caputo <vcaputo@pengaru.com> | 2025-01-01 16:21:13 -0800 |
---|---|---|
committer | Vito Caputo <vcaputo@pengaru.com> | 2025-01-01 19:32:12 -0800 |
commit | 99df2027777cb732918ca8aaaa5efcfd75b615d3 (patch) | |
tree | d07cf6a4d331a72ad2c5e0bbb54b5c053c86f8ac /src/libvmon/vmon.c | |
parent | c2b495ecb3a0c42bd02398e3f70fb8112d8dbc29 (diff) |
libvmon: add vmon_dump_procs() debugging aid
It's handy to see what the libvmon hash table state of the world
is when trying to understand brokenness, but also as a tool for
verifying things aren't out of sync with what the hierarchical
view contains.
Diffstat (limited to 'src/libvmon/vmon.c')
-rw-r--r-- | src/libvmon/vmon.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/libvmon/vmon.c b/src/libvmon/vmon.c index 4ce0974..69dc99b 100644 --- a/src/libvmon/vmon.c +++ b/src/libvmon/vmon.c @@ -1689,3 +1689,21 @@ int vmon_sample(vmon_t *vmon) return ret; } + + +void vmon_dump_procs(vmon_t *vmon, FILE *out) +{ + assert(vmon); + assert(out); + + fprintf(out, "generation=%i\n", vmon->generation); + for (int i = 0; i < VMON_HTAB_SIZE; i++) { + vmon_proc_t *proc; + + list_for_each_entry(proc, &vmon->htab[i], bucket) { + fprintf(out, "[%i] proc=%p parent=%p gen=%i pid=%i rc=%i is_threaded=%i is_thread=%i is_new=%u is_stale=%u\n", + i, proc, proc->parent, proc->generation, proc->pid, proc->refcnt, (unsigned)proc->is_threaded, (unsigned)proc->is_thread, (unsigned)proc->is_new, (unsigned)proc->is_stale); + + } + } +} |