It is useful to get a trace of a benchmark, e.g., with DynamoRio (https://dynamorio.org/).
What's needed is a public API akin to the MemoryManager API that provides for wrapping the running of the benchmark.
Suitable binaries can register the profiler (akin to how a memory manager is specified), and the framework
can invoke the profiler during the run (again, akin to how memory manager is handled).