On Tue, Mar 03, 2009 at 10:34:14AM -0800, Andrew Paprocki wrote:
> > No;  you don't want =K, since that will print it to
> > standard output.  Just
> > do "<%s", then mdb_eval(), then mdb_get_dot()
> 
> Max/Jonathan, thanks for your help! I have a module up and running which 
> continually grabs <pc, uses mdb_vread() to get the instruction, and uses a 
> Sparcv9 instruction decoder to pick it apart so I can get the target address 
> for every load/store instruction.
> 
> The only nagging issue I have now is the fact that when I 
> mdb_call_dcmd("step", 0, 0, 0, 0) to step to the next instruction, it prints 
> out to stdout which clutters the log. For example:
> 
> mdb: target stopped at:
> libc.so.1`mutex_unlock+0xa4:    st        %o4, [%i0 + 0x10]
> pc(0xfbb3e81c) => instr(0xd8262010)
> opcode 162: rd(o4) rs1(i0) asi(0) rs2(10)
> register i0: 0xfbb75300
> opcode 162: address 0xfbb75310
> SYMBOL: bind(2) type(1) symbol: libc.so.1`_uberdata
> mdb: target stopped at:
> libc.so.1`mutex_unlock+0xa8:    st        %o4, [%i0 + 0x14]
> ...
> 
> I want to somehow force mdb to ::step without it printing out the "mdb: 
> target stopped at: ..." to stdout. Is that possible at all?

It should be going to stderr.  It doesn't look like it is possible to get rid
of the message, though.

Cheers,
- jonathan


Reply via email to