Currently, ::print does not print anything about the top-level structure or
union that is being printed.  I'm in there working on something else:

        4916519 can't ::print forward-decl typedef

and I noticed that the code in elt_print() would be much simpler if we treated
the top level the same.  The change in output would be from:

> ::print proc_t
{
    p_exec 
    p_as 
    p_lockp 
    p_crlock {
        _opaque 
    }
...
> ::print -t proc_t
{
    struct vnode *p_exec 
    struct as *p_as 
    struct plock *p_lockp 
    kmutex_t p_crlock {
        void *[1] _opaque 
    }
...
> ::print -at proc_t
{
    0 struct vnode *p_exec 
    8 struct as *p_as 
    10 struct plock *p_lockp 
    18 kmutex_t p_crlock {
        18 void *[1] _opaque 
    }
...
> ::print -a proc_t
{
    0 p_exec 
    8 p_as 
    10 p_lockp 
    18 p_crlock {
        18 _opaque 
    }
...
> p0::print -ta proc_t
{
    1892440 struct vnode *p_exec = 0
    1892448 struct as *p_as = kas
    1892450 struct plock *p_lockp = p0lock
    1892458 kmutex_t p_crlock = {
        1892458 void *[1] _opaque = [ 0 ]
    }
...


to:

> ::print proc_t
{
    p_exec 
    p_as 
    p_lockp 
    p_crlock {
        _opaque 
    }
...
> ::print -t proc_t
proc_t {
    struct vnode *p_exec 
    struct as *p_as 
    struct plock *p_lockp 
    kmutex_t p_crlock {
        void *[1] _opaque 
    }
...
> ::print -at proc_t
0 proc_t {
    0 struct vnode *p_exec 
    8 struct as *p_as 
    10 struct plock *p_lockp 
    18 kmutex_t p_crlock {
        18 void *[1] _opaque 
    }
...
> ::print -a proc_t
0 {
    0 p_exec 
    8 p_as 
    10 p_lockp 
    18 p_crlock {
        18 _opaque 
    }
...
> p0::print -ta proc_t
1892440 proc_t = {
    1892440 struct vnode *p_exec = 0
    1892448 struct as *p_as = kas
    1892450 struct plock *p_lockp = p0lock
    1892458 kmutex_t p_crlock = {
        1892458 void *[1] _opaque = [ 0 ]
    }
...


Personally, I think this makes the output much more regular, but I'm happy
to hear objections and comments.

Thoughts?

Cheers,
- jonathan

Reply via email to