On Sun, Nov 27, 2005 at 06:24:58PM -0600, Tao Chen wrote: > > Thanks Eric, point taken. > > BTW, in this case, I got: > > fifo_open+0x44e(fffffe8000d3bcb0, 2001, ffffffff844c00a8); > > The first arg is vnode_t **vpp. > How do I simply print a value of an address (fffffe8000d3bcb0), so I can get > the vnode address in this case? > "::print" expects symbol information:
You can take the address and use the '/' operator. i.e: > fffffe8000d3bcb0/K | ::print vnode_t Run '::formats' to see a list of acceptable characters and their associated sizes and types. > > 0xffffffff8494b4c0::print > mdb: no symbol information > > I can of course fake a symbol and get the pointer value in the output. > > I must say it's nice to have the v_path in vnode: > > > 0xffffffff8494b4c0::print vnode_t v_path > v_path = 0xffffffff85195cf8 "/export/share/tc/C/pipe/pipe.file" Yes, for this particular case you may have been OK with just truss (to get the file descriptor being read from) and pfiles (which displays the path information). But MDB is a handy tool to have around ;-) - Eric -- Eric Schrock, Solaris Kernel Development http://blogs.sun.com/eschrock