Research Article

Debugging Nondeterministic Failures in Linux Programs through Replay Analysis

Algorithm 1

Dynamic tracing.
Input: Program executable ex, Set of global variables to trace SGV, Logs of a recorded execution log
Output: Memory access log:    for each variable in SGV
(1) while  
(2) Select(SGV)
(3) SetHWwatchpoint()
(4) StartReplay(ex, log)
(5) while  (replay)
(6) if   is hit
(7) addr ReadAddress(wp)
(8) LogMemoryAccess(addr)
(9) end if
(10) end while
(11) end while