drmemtrace consists of two types of components: the tracer and trace analyzers. The tracer collects a memory access trace from each thread within each application process. A trace analyzer consumes the traces (online or offline) and performs customized analysis. The framework is designed to be extensible, allowing users to easily extend the existing simulators for different devices such as CPU caches, TLBs, page caches, etc. (see Extending the Simulator), or to build arbitrary trace analysis tools (see Creating New Analysis Tools). The default analyzer drcachesim simulates the architectural behavior of caching devices for a target application (or multiple applications).