skip to main content
10.5555/2032497.2032534acmotherconferencesArticle/Chapter ViewAbstractPublication PagesecoopConference Proceedingsconference-collections
Article

Summarized trace indexing and querying for scalable back-in-time debugging

Published: 25 July 2011 Publication History

Abstract

Back-in-time debuggers offer an interactive exploration interface to execution traces. However, maintaining a good level of interactivity with large execution traces is challenging. Current approaches either maintain execution traces in memory, which limits scalability, or perform exhaustive on-disk indexing, which is not efficient enough.
We present a novel scalable disk-based approach that supports efficient capture, indexing, and interactive navigation of arbitrarily large execution traces. In particular, our approach provides strong guarantees in terms of query processing time, ensuring an interactive debugging experience. The execution trace is divided into bounded-size execution blocks about which summary information is indexed. Blocks themselves are discarded, and retrieved as needed through partial deterministic replay. For querying, the index provides coarse answers at the level of execution blocks, which are then replayed to find the exact answer. Benchmarks on a prototype for Java show that the system is fast in practice, and outperforms existing back-in-time debuggers.

References

[1]
Bhansali, S., Chen, W.-K., de Jong, S., Edwards, A., Murray, R., Drinic, M., Mihocka, D., Chau, J.: Framework for instruction-level tracing and analysis of program executions. In: VEE 2006: Proceedings of the second international conference on Virtual execution environments, pp. 154-163. ACM Press, New York (2006)
[2]
Blackburn, S.M., Garner, R., Hoffman, C., Khan, A.M., McKinley, K.S., Bentzur, R., Diwan, A., Feinberg, D., Frampton, D., Guyer, S.Z., Hirzel, M., Hosking, A., Jump, M., Lee, H., Moss, J.E.B., Phansalkar, A., Stefanovic, D., VanDrunen, T., von Dincklage, D., Wiedermann, B.: The DaCapo benchmarks: Java benchmarking development and analysis. In: OOPSLA 2006: Proceedings of the 21st Annual ACM SIGPLAN Conference on Object-Oriented Programing, Systems, Languages, and Applications, pp. 169-190. ACM Press, New York (2006)
[3]
Choi, J.-D., Srinivasan, H.: Deterministic replay of Java multithreaded applications. In: SPDT 1998: Proceedings of the SIGMETRICS Symposium on Parallel and Distributed Tools, pp. 48-59. ACM Press, New York (1988)
[4]
Elias, P.: Universal codeword sets and representations of the integers. IEEE Transactions on Information Theory 21(2), 194-203 (1975)
[5]
Hofer, C., Denker, M., Ducasse, S.: Design and implementation of a backwardin-time debugger. In: Proceedings of NODE 2006. Lecture Notes in Informatics, vol. P-88, pp. 17-32. Gesellschaft für Informatik, GI (2006)
[6]
Ko, A.J., Myers, B.A.: Debugging reinvented: Asking and answering why and why not questions about program behavior. In: ICSE 2008: Proceedings of the International Conference on Software Engineering, pp. 301-310 (2008)
[7]
Larus, J.R.: Whole program paths. In: PLDI 1999: Proceedings of the ACM SIGPLAN 1999 Conference on Programming Language Design and Implementation, pp. 259-269. ACM Press, New York (1999)
[8]
Lewis, B.: Debugging backwards in time. In: Ronsse, M., De Bosschere, K. (eds.) Proceedings of the Fifth International Workshop on Automated Debugging (AADEBUG 2003), Ghent, Belgium, vol. cs.SE/0310016 (2003)
[9]
Lieberman, H., Fry, C.: ZStep 95: A reversible, animated source code stepper. In: Stasko, J., Domingue, J., Brown, M.H., Price, B.A. (eds.) Software Visualization -- Programming as a Multimedia Experience, pp. 277-292. The MIT Press, Cambridge (1998)
[10]
Lienhard, A., Fierz, J., Nierstrasz, O.: Flow-centric, back-in-time debugging. In: Oriol, M., Meyer, B. (eds.) TOOLS EUROPE 2009. Lecture Notes in Business Information Processing, vol. 33, pp. 272-288. Springer, Heidelberg (2009)
[11]
Lienhard, A., Gîrba, T., Wang, J.: Practical Object-Oriented Back-in-Time Debugging. In: Ryan, M. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 592-615. Springer, Heidelberg (2008)
[12]
Pothier, G., Tanter, é.: Back to the future: Omniscient debugging. IEEE Software 26(6), 78-95 (2009)
[13]
Pothier, G., Tanter, é., Piquer, J.: Scalable omniscient debugging. In: Proceedings of the 22nd ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 2007), pp. 535-552. ACM Press, New York (2007); ACM SIGPLAN Notices, 42(10)
[14]
Sadakane, K., Navarro, G.: Fully-functional succinct trees. In: Proc. 21st Annual ACM-SIAM Symposium on Discrete Algorithms, SODA (2010)
[15]
Saito, Y.: Jockey: a user-space library for record-replay debugging. In: Proceedings of the Sixth International Symposium on Automated Analysis-driven Debugging (AADEBUG 2005), pp. 69-76. ACM Press, New York (2005)
[16]
Srinivasan, S.M., Kandula, S., Andrews, C.R., Zhou, Y.: Flashback: a lightweight extension for rollback and deterministic replay for software debugging. In: ATEC 2004: Proceedings of the Annual Conference on USENIX Annual Technical Conference, pp. 3-3. USENIX Association, Berkeley (2004)
[17]
Tallam, S., Gupta, R., Zhang, X.: Extended whole program paths. In: International Conference on Parallel Architectures and Compilation Techniques, pp. 17-26 (2005)
[18]
Xin, B., Sumner, W.N., Zhang, X.: Efficient program execution indexing. In: Gupta, R., Amarasinghe, S.P. (eds.) PLDI, pp. 238-248. ACM, New York (2008)
[19]
Xu, M., Malyugin, V., Sheldon, J., Venkitachalam, G., Weissman, B., Inc, V.: Retrace: Collecting execution trace with virtual machine deterministic replay. In: In Proceedings of the 3rd Annual Workshop on Modeling, Benchmarking and Simulation, MoBS (2007)
[20]
Zhang, X., Gupta, R.: Whole execution traces and their applications. ACM Trans. Archit. Code Optim. 2(3), 301-334 (2005)

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
ECOOP'11: Proceedings of the 25th European conference on Object-oriented programming
July 2011
657 pages
ISBN:9783642226540
  • Editor:
  • Mira Mezini

Sponsors

  • Google Inc.
  • SAP
  • IBMR: IBM Research
  • AOSD-Europe: European Network of Excellence on Aspect-Oriented Software Development
  • Microsoft Research: Microsoft Research

In-Cooperation

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 25 July 2011

Check for updates

Qualifiers

  • Article

Conference

ECOOP '11
Sponsor:
  • IBMR
  • Microsoft Research

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 27 Dec 2024

Other Metrics

Citations

Cited By

View all

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media