Merging traces of hardware-assisted data breakpoints

Future improvements in hardware and O/S support for monitoring programs will depend on providing feedback for current support (even if it is quite limited). We look at using hardware breakpoint registers and performance counters in order to trace data accesses in a program. We first present a small experiment to understand how these features can be used to monitor a program. and then detail an algorithm for using these limited resources to trace any amount of data accesses in a program and achieve a complete and correct trace by merging partial traces.