Visual Analytics for Concurrent Java Executions

Analyzing executions of concurrent software is very difficult. Even if a trace is available, such traces are very hard to read and interpret. A textual trace contains a lot of data, most of which is not relevant to the issue at hand. Past visualization attempts either do not show concurrent behavior, or result in a view that is overwhelming for the user. We provide a visual analytics tool, VA4JVM, for error traces produced by either the Java Virtual Machine, or by Java Pathfinder. Its key features are a layout that spatially associates events with threads, a zoom function, and the ability to filter event data in various ways. We show in examples how filtering and zooming in can highlight a problem without having to read lengthy textual data.

[1]  Cyrille Artho,et al.  Java Pathfinder at SV-COMP 2019 (Competition Contribution) , 2019, TACAS.

[2]  Michael Burrows,et al.  Eraser: a dynamic data race detector for multithreaded programs , 1997, TOCS.

[3]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[4]  Other Contributors Are Indicated Where They Contribute The Eclipse Foundation , 2017 .

[5]  Jong-Deok Choi,et al.  Deterministic replay of Java multithreaded applications , 1998, SPDT '98.

[6]  Diego Castro,et al.  Analysis of Test Log Information through Interactive Visualizations , 2018, 2018 IEEE/ACM 26th International Conference on Program Comprehension (ICPC).

[7]  Wei Xu,et al.  Advances and challenges in log analysis , 2011, Commun. ACM.

[8]  Eric Bodden,et al.  Aspect-Oriented Race Detection in Java , 2010, IEEE Transactions on Software Engineering.

[9]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[10]  Cyrille Artho,et al.  Visualization of Concurrent Program Executions , 2007, 31st Annual International Computer Software and Applications Conference (COMPSAC 2007).

[11]  Eric Mercer,et al.  Guided test visualization: Making sense of errors in concurrent programs , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[13]  Erik Borgren,et al.  Visualization of Message Passing in an Embedded System , 2015 .

[14]  Takashi Kobayashi,et al.  SDExplorer: A Generic Toolkit for Smoothly Exploring Massive-Scale Sequence Diagram , 2018, 2018 IEEE/ACM 26th International Conference on Program Comprehension (ICPC).

[15]  Leonardo Mariani,et al.  Dynamic Analysis for Diagnosing Integration Faults , 2011, IEEE Transactions on Software Engineering.

[16]  Klaus Havelund,et al.  Model Checking Programs , 2004, Automated Software Engineering.

[17]  John T. Stasko,et al.  Visualization of test information to assist fault localization , 2002, ICSE '02.

[18]  Rui Abreu,et al.  Using HTML5 visualizations in software fault localization , 2013, 2013 First IEEE Working Conference on Software Visualization (VISSOFT).

[19]  M. Desnoyers,et al.  The LTTng tracer: A low impact performance and behavior monitor for GNU/Linux , 2006 .

[20]  Kristin A. Cook,et al.  Illuminating the Path: The Research and Development Agenda for Visual Analytics , 2005 .

[21]  Armin Biere,et al.  High‐level data races , 2003, Softw. Test. Verification Reliab..

[22]  Hans-Peter Fröschle DevOps , 2017, HMD Praxis der Wirtschaftsinformatik.

[24]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[25]  Jan-Philipp Steghöfer,et al.  APP4MC: Application platform project for multi- and many-core systems , 2017, it Inf. Technol..

[26]  Jeremy Manson,et al.  The Java memory model , 2005, POPL '05.