Adds new options -trace_for_instrs and -retrace_every_instrs to drcachesim for periodic trace bursts of an unmodified application. Implements them by adapting the existing drbbdup cases for switching between -trace_after_instrs and full tracing.
Adds documentation on the new options.
Adds instru_t::get_instr_count to count instuctions while tracing, to know when a tracing burst window is finished. Uses a local counter only added to the global every 10K instructions to avoid synchronization costs.
Adds a new marker with the ordinal of the trace window. This marker is added to each buffer header. This, combined with a new check for the window having changed to ensure a buffer dump at the end of each block, limits the possible window drift to one block's worth of data.
Augments raw2trace to avoid delaying a branch across a window change.
Augments the view tool to mark window changes and delay timestamp output to group with the proper window (it is difficult to actually reorder timestamp and window entries).
Augments the basic_counts tool to track and display per-window global statistics.
Augments the invariant_checker tool to not complain on a control-flow gap across a window. Adds a test of this: but disables it for Windows temporarily due to more emulation interopability issues which #5390 (closed) covers.
Adds a simple online test and a simple offline test that just confirm multiple windows are hit on simple_app. Adds an assembly test with precise values for the windows.
Issue: #3995, #5390 (closed)