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