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
> 


Reply via email to