On 02/04/2014 07:02 AM, Peter Maydell wrote:
> On 4 February 2014 14:57, Richard Henderson <[email protected]> wrote:
>> I suppose I have no major objection to the feature, although frankly it's
>> not especially exciting. I can't really imagine ever wanting to bulk trace
>> all of the helpers. Tracing specific helpers on a target-by-target basis,
>> sure. But that can be done just as easily as adding tracing code to any
>> other bit of C.
>
> I think the things people seem to actually want (judging
> from occasional postings to the list) are things like:
> * trace all guest memory accesses
> * trace all guest instruction executions
>
> Does this patchset get us usefully towards that kind of thing?
> Not sure...
If that's the goal, I would suggest that they do not. One does not need to
hook all of the helpers in order to achieve that.
A hook in tcg_gen_qemu_{ld,st}_i{32,64} to (conditionally) emit a call to a
helper to log the access gets you all (non-execution) guest memory accesses.
Guest instruction executions is quite a bit harder, of course. But any start
in that direction could be done through a pair of trace events: Log the insn
address range covered by a TB + a uuid at translation time; log the uuid at the
start of execution of the TB. A script should be able to put the two together
to complete the trace.
r~