drakvuf
drakvuf copied to clipboard
ARM support
Implement Linux tracing for ARM guests by implementing Xen altp2m for ARM and by avoiding using the guest-accessible single-stepping apparatus provided by the CPU. Singlestepping can also be achieved by utilizing two consecutive trapping instructions (ie. double-trapping) instead of the single trapping instruction used on x86. Multi-vcpu safe singlestepping using the double-trapping approach can be implemented by using separate altp2m views for each trapping instruction in the double-trap. On ARM this can be used because ARM chips implement fix-length instructions. Hiding the presence of the trapping instruction will require singlestepping the code (either by double-trapping this code itself, or perhaps using the traditional singlestep if deemed safe) involved in reading the code-location where the instruction were injected while the altp2m view is switched to a clean view (similar to the x86 solution).