> 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?
-- 
This message posted from opensolaris.org

Reply via email to