[prev in list] [next in list] [prev in thread] [next in thread] 

List:       opensolaris-mdb-discuss
Subject:    [mdb-discuss] Is there a regression introduced for mdb subcommand
From:       Brian Xu - Sun Microsystems - Beijing China <Brian.Xu () Sun ! COM>
Date:       2010-01-20 9:24:33
Message-ID: 4B56CBD1.1060801 () sun ! com
[Download RAW message or body]

Hi,

I remember sometime ago the '::list' subcommand worked well for listing 
all of the entries in a user defined list structure. But now it doesn't 
work.

Here is my C code:
typedef struct mptsas_target_dma_cookie_cache {
   ddi_dma_handle_t    dmahandle;
   ddi_dma_cookie_t    cookie;
   pfn_t            pagenum;
   clock_t            timestamp;
   list_node_t        node;
} mptsas_target_dma_cookie_cache_t;

typedef    struct mptsas_target {
...
   list_t            m_tgt_dma_cookie_cache_list;
       int            m_tgt_dma_cookie_cache_n;

} mptsas_target_t;

In mdb,
 > 0x6003ea22bc8::print mptsas_hash_node_t data|::print -a mptsas_target_t
6003ecce188 {
...
6003ecce1c8 m_tgt_dma_cookie_cache_list = {
       6003ecce1c8 list_size = 0x40
       6003ecce1d0 list_offset = 0x30
       6003ecce1d8 list_head = {
           6003ecce1d8 list_next = 0x6003d9f3eb0
           6003ecce1e0 list_prev = 0x6003ee03670
       }
   }
   6003ecce1e8 m_tgt_dma_cookie_cache_n = 0xd
}

I want to list all of the 0xd entries in the 
m_tgt_dma_cookie_cache_list, so I

 > 0x6003d9f3eb0::list mptsas_target_dma_cookie_cache_t node
6003d9f3eb0
3df809
mdb: failed to read next pointer from object 3df809: no mapping for address

I have to manually list all of the entries:
 > 0x6003d9f3eb0-30::print mptsas_target_dma_cookie_cache_t    
{
    dmahandle = 0x6003f008c00
    cookie = {
        _dmu = {
            _dmac_ll = 0x826f8000
            _dmac_la = [ 0, 0x826f8000 ]
        }
        dmac_size = 0
        dmac_type = 0
    }
    pagenum = 0x3df95f
    timestamp = 0x2312
    node = {
        list_next = 0x6003f13e2b0
        list_prev = 0x6003ecce1d8
    }
}
 > 0x6003f13e2b0-30::print mptsas_target_dma_cookie_cache_t
{
    dmahandle = 0x6003f004600
    cookie = {
        _dmu = {
            _dmac_ll = 0x826fa000
            _dmac_la = [ 0, 0x826fa000 ]
        }
        dmac_size = 0
        dmac_type = 0
    }
    pagenum = 0x3df7df
    timestamp = 0x2312
    node = {
        list_next = 0x6003f223cf0
        list_prev = 0x6003d9f3eb0
    }
}
 > 0x6003f223cf0-30::print mptsas_target_dma_cookie_cache_t
{
    dmahandle = 0x6003f009080
    cookie = {
        _dmu = {
            _dmac_ll = 0x826fc000
            _dmac_la = [ 0, 0x826fc000 ]
        }
        dmac_size = 0
        dmac_type = 0
    }
    pagenum = 0x3df8e8
    timestamp = 0x2312
    node = {
        list_next = 0x6003f13f270
        list_prev = 0x6003f13e2b0
    }
}

Is there a regression introduced? I am using snv_130.

Thanks,
Brian
_______________________________________________
mdb-discuss mailing list
mdb-discuss@opensolaris.org
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic