Excellent! And thank you very much for answering the question I asked as well as the questions I needed to ask but didn't! :)
::umausers does look like exactly what I want And pointers to ::map and ::grep are great, I think that gives me a huge boost up the learning curve. Just knowing they are very useful allows me to focus. I think they might deserve an honourable mention on the cheat-sheet (in bold) :) though the cheat-sheet probably isn't quite meant as a beginners tool. They're on mine now anyway. Though that's getting just a little bit messy now. Sorry for raving but that is great help! :-) I came across your blog entries the last few days too. I must go now and learn & consolidate this newfound knowledge! Thank you! James. Jonathan Adams wrote: > You want ::map: > > ::walk umem_alloc_96 | ::map '*(.+60+8)' | ::bufctl_audit > > but there's actually an easier way; get the address of the umem_alloc_96 > cache, and use the "bufctl" walker: > > >>::umem_cache ! grep umem_alloc_96 > > 000000010020c028 umem_alloc_96 020f 80000000 96 512 > >>10020c028::walk bufctl | ::bufctl_audit > Ohhh!! ** sudden enlightenment as to what walkers actually ARE and DO. ** doh. I should probably not leave it be known I had missed that. Will re-read THAT section of the manuals again too! > ... data dumps here ... > > > But ::map and ::grep are workhorses in MDB pipelines; I'd recommend > learning how to use them. > > On Solaris 10 and later, '::bufctl -v' is equivalent to ::bufctl_audit, > and also allows for all kinds of filtering (see '::help bufctl'). > > You may also want to look at the output of '::umausers', which groups > allocations by stack trace. > > Cheers, > - jonathan >