Refine
Has Fulltext
- no (4)
Document Type
- Article (4) (remove)
Language
- English (4)
Is part of the Bibliography
- yes (4)
Keywords
- Debugging (1)
- Distributed debugging (1)
- Dynamic analysis (1)
- Field study (1)
- Literature review (1)
- Online survey (1)
- Record and refinement (1)
- Record and replay (1)
- design (1)
- languages (1)
- separation of concerns (1)
- traceability (1)
- use-cases (1)
Distributed applications are hard to debug because timing-dependent network communication is a source of non-deterministic behavior. Current approaches to debug non deterministic failures include post-mortem debugging as well as record and replay. However, the first impairs system performance to gather data, whereas the latter requires developers to understand the timing-dependent communication at a lower level of abstraction than they develop at. Furthermore, both approaches require intrusive core library modifications to gather data from live systems. In this paper, we present the Peek-At-Talk debugger for investigating non-deterministic failures with low overhead in a systematic, top-down method, with a particular focus on tool-building issues in the following areas: First, we show how our debugging framework Path Tools guides developers from failures to their root causes and gathers run-time data with low overhead. Second, we present Peek-At-Talk, an extension to our Path Tools framework to record non-deterministic communication and refine behavioral data that connects source code with network events. Finally, we scope changes to the core library to record network communication without impacting other network applications.