Back-in-Time Debugging in Heterogeneous Software Stacks
Arian Treffer, Matthias Uflacker · 2017
Back-in-time, or omniscient debuggers can help developers to debug software more efficiently. However, complex business applications often consist of multiple components that run in distinct systems or environments, were developed in different programming languages, and require separate debugging tools. We interviewed five developers of business applications to understand how such software is developed and debugged. Based on these insights we developed a prototype back-in-time debugger that allows developers the seamless debugging of the entire stack of a 3-tier application, from the front-end running in the browser down to stored procedures in the database. High-level visualizations guide the developer in understanding the relations between sub-systems and help to sequentially debug concurrent requests. We evaluated our approach with a real-world project. Encouraged by promising developer feedback, we discuss steps to generalize our work into a debugger for arbitrary heterogeneous software systems.