A QEMU[1] based tracer for full system memory accesses. QEMTrace allows bare-metal and OS memory access tracing in a non-intrusive manner. It uses the virtualization provided by QEMU to collect information about the memory accesses. We also present the different trace collection means put in place and introduce a Shared Memory Interface (SMI) used to connect QEMTrace to any client application that uses memory traces as input. Contrary to most work, our approach permits the collection of a wide range of information (called meta-data) concerning memory accesses such as their type, privilege level, size, etc. Such information can be used to precisely profile memory usage or access patterns generated by applications.
Master build |
---|
- x86 (i386 and x86_64)
- PowerPC (tested on e200, e500 and e6500)
- ARMv7
- RISC-V (WIP)
- Fully customizable memory tracing
- Multiple trace format
- Shared Memory Interface
- Cache instructions support
QEMU is multi-platform software intended to be buildable on all modern Linux platforms, OS-X, Win32 (via the Mingw64 toolchain) and a variety of other UNIX targets. The simple steps to build QEMU are:
mkdir build cd build ../configure make
Additional information can also be found online via the QEMU website:
https://qemu.org/Hosts/Linux https://qemu.org/Hosts/Mac https://qemu.org/Hosts/W32
For any QEMTrace related question, please contact: alexy.torres-aurora-dugo@polymtl.ca
The QEMU community can be contacted in a number of ways, with the two main methods being email and IRC
- qemu-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/qemu-devel
- #qemu on irc.oftc.net
Todo: Publication link
QEMU: https://www.qemu.org