<br><br><div class="gmail_quote">On Tue, May 12, 2009 at 2:23 AM, gbarnett <span dir="ltr">&lt;<a href="mailto:granvillebarnett@googlemail.com">granvillebarnett@googlemail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Hi,<br>
<br>
I&#39;m trying to find the hooks to record all memory reads/writes that are made<br>
throughout the lifetime of a program as part of a project I am undertaking<br>
at the moment.<br>
<br>
So far I&#39;ve been driven towards looking at MonoInst (using IR within<br>
method-to-ir.c, and the mono_method_to_ir routine), in particular:<br>
<br>
- dreg, sreg1, sreg2<br>
<br>
However, each has a signed integer value which leads me to beleive these are<br>
nothing to do with memory addresses. I&#39;ve also looked at the *MEMBASE* line<br>
of macros which seem to populate these values on the MonoInst type but<br>
nothing seems to give me a clear answer at the moment.<br>
<br>
Can anyone shed some light on the matter?<br>
</blockquote><div><br>Those are symbolic registers that the intermediate representation of mono uses.<br>MEMBASE inss deal explicitly with memory operations, for example:<br><br>In &quot;load_membase r1, [r2]&quot;  the memory content pointer by r2 is loaded into r1.<br>
Similar to that, &quot;store_membase [r1], r2&quot; stores into the memory pointer by r1 the<br>content of r2.<br><br><br><br></div></div>