You can do:

    *swap_vnodes::array "struct vnode *" 0t2048  | /Kn | ::grep .

alex.

zhijun wrote:
> Hi folks,
> I met a problem when investigating the swap code. There is an array
> called swap_vnodes[],which contains pointers to all the swap vnodes in
> system.
> 
> static struct vnode **swap_vnodes;
> #define MAX_SWAP_VNODES 2048
> 
> While this is a pointer to pointer,I would like to dump the array and
> see which slots are already allocated.
> 
> mdb -k
>> swap_vnodes/K
> swap_vnodes:
> swap_vnodes: fffffffecc47e000
>> fffffffecc47e000::array "struct vnode *" 0t2048 p|::eval <p/K
> 0xfffffffecc47e000: 0
> 0xfffffffecc47e008: 0
> 0xfffffffecc47e010: 0
> 0xfffffffecc47e018: 0
> 0xfffffffecc47e020: 0
> 0xfffffffecc47e028: 0
> 0xfffffffecc47e030: 0
> 0xfffffffecc47e038: 0
> 0xfffffffecc47e040: 0
> 0xfffffffecc47e048: 0
> 0xfffffffecc47e050: 0
> 0xfffffffecc47e058: 0
> 0xfffffffecc47e060: 0
> 0xfffffffecc47e068: 0
> 0xfffffffecc47e070: 0
> ......
> 
>> fffffffecc47e000::array "struct vnode *" 0t2048 p|::eval <p/K|::grep .!=0
> sh: =0: not found
> mdb: syntax error on line 1 of (pipeline) near ":"
>> fffffffecc47e000::array "struct vnode *" 0t2048 p|::eval <p/K|::grep .==0
> mdb: syntax error on line 1 of (pipeline) near ":"
> 
>> 0xfffffffecc47e000/K|::grep .!=0
> sh: =0: not found
>> 0xfffffffecc47e000/K|::grep .==0
> 0
> 
> My two questions:
> 1) It seems that != is not supported in mdb, so how can I specify "not
> equal" in mdb?
> 2) While == works, it doesn't work for the above case, I guess it is
> related to "/K", is there any way to work around it or do we need to fix it?
> 
> Thanks,
> Zhijun
> _______________________________________________
> mdb-discuss mailing list
> mdb-discuss at opensolaris.org

Reply via email to