Memory write tracing/logging of an application / Watchpoints in Genode/Fiasco.OC

Stark, Josef j.stark at ...256...
Thu Nov 30 22:43:41 CET 2017


Hi all,


I want to be able to 'trace' every memory write access of an arbitrary target application, in order to 'duplicate' those writes into another memory location.

So that I would then have at all times one exact copy of the memory area (stack and heap) used by that application.

My plan was to realize this with the help of a parent application, that acts as a session-proxy for the target, i.e. target requests a RAM-session from parent, which forwards the request to core and then provides the session to target; thus, the parent later knows which dataspaces/ memory areas are used by target.

It could then flag that whole memory area with watchpoints. Hence, parent would be notified about all write accesses made by target and could consequently duplicate those writes in a secondary memory location.

(I know that this would probably incur a slowdown factor of 10-1000 times, but that is allowed in this scenario.)

Sadly, only now I have read that watchpoints are not implemented in Genode, and most probably neither are they in the underlying kernel, Fiasco.OC, which I have to use; breakpoints on the other hand seem to work just fine.

My question is: Could there possibly be another way to achieve my goal, or do I have to bite the bullet and implement watchpoints myself?


Thanks for bearing with me and for any hints at all.

Best,

Josef
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.genode.org/pipermail/users/attachments/20171130/afb61ff3/attachment.html>


More information about the users mailing list