In my QEMU-based project I would like to perform "extensive" tracing of basic blocks (translation blocks). I.e. in addition to what the existing tracing mechanism does, I'd like to log registers modified by TB and memory (RAM) written by TB. As for registers, it seems to be trivial. My main problem is how to know what memory addresses/sizes were written by a TB. During the research of this subject I found the following thread: https://lists.gnu.org/archive/html/qemu-devel/2015-04/msg00944.html The bottom line, IUUC, is that the only way to get what I need is to disable the "fast path" of the memory accesses. However, I still can't realize how to modify the back-end correctly. Besides, I would like to be able to enable/disable the fast path at run-time - to minimize impact on the performance when the tracing is not enabled. Would it be possible? I'd appreciate any pointer!
Thanks.