Title :
Time-Ordered Event Traces: A New Debugging Primitive for Concurrency Bugs
Author :
Dimitrov, Martin ; Zhou, Huiyang
Author_Institution :
Software & Services Group, Intel Corp., Chandler, AZ, USA
Abstract :
Non-determinism makes concurrent bugs extremely difficult to reproduce and to debug. In this work, we propose a new debugging primitive to facilitate the debugging process by exposing this non-deterministic behavior to the programmer. The key idea is to generate a time-ordered trace of events such as function calls/returns and memory accesses across different threads. The architectural support for this primitive is lightweight, including a high-precision, frequency-invariant time-stamp counter and an event trace buffer in each processor core. The proposed primitive continuously records and timestamps the last N function calls/returns per core by default, and can also be configured to watch specific memory addresses or code regions through a flexible software interface. To examine the effectiveness of the proposed primitive, we studied a variety of concurrent bugs in large commercial software and our results show that exposing the time-ordered information, function calls/returns in particular, to the programmer is highly beneficial for diagnosing the root causes of these bugs.
Keywords :
concurrency control; program debugging; program diagnostics; software architecture; architectural support; commercial software; concurrency bugs; debugging primitive; event trace buffer; flexible software interface; frequency-invariant time-stamp counter; function calls; function returns; processor core; time-ordered event traces; time-ordered trace generation; Computer bugs; Concurrent computing; Debugging; Engines; Instruction sets;
Conference_Titel :
Parallel & Distributed Processing Symposium (IPDPS), 2011 IEEE International
Conference_Location :
Anchorage, AK
Print_ISBN :
978-1-61284-372-8
Electronic_ISBN :
1530-2075
DOI :
10.1109/IPDPS.2011.38